백업시 참고 사항 - 기본적으로 model, northwind, Pubs, tempdb는 백업하지 않아도 됨. - master테이블은 권한과 같은 정보들이 있고, msdb테이블은 스케쥴이나 패키지 작업이 저장되어 있습니다. 필요한 데이터일 경우에만 백업하면 됩니다. 전체 백업 - 전체 백업은 데이터의 변경 유무에 관여하지 않고 전체 데이터의 복사본을 만드는 백업 방식입니다. - 전체 백업은 복구 과정이 다른 백업 방식보다 간편하고 다른 백업 방식보다 복구 시간이 적게 소요됩니다. 쿼리 Backup Database DB이름 To Disk='경로\파일명.bak' 차등 백업 - 차등 백업은 마지막 전체 백업 이후 변경된 모든 데이터를 백업하는 방식입니다. 이는 증분 백업과는 다르게 전체 백업 이후 파일이 변경..
1 . 데이터의 결합방법 1) 가로로 연결 : JOIN - 의미 있는 연결을 위해서는 로우(ROW)의 공통 요소를 이용하여 연결할 경우 사용 2) 세로로 연결 : UNION - 컬럼(Colum)의 공통된 형식을 어기면 연결 불가 2 . JOIN 가로(수평적)로 하나의 결과 집합과 다른 결과 집합을 연결하는 것 (집합 : 테이블, 뷰, 인라인뷰, 테이블변수....) 조인의 종류 ◎ INNER JOIN ◎ OUTER JOIN (LEFT , RIGHT 모두) ◎ FULL JOIN ◎ CROSS JOIN ◎ SELF JOIN 1) INNER JOIN 두 집합간의 하나나 그 이상의 공통 필드들에 기반해서 레코드들을 일치 INNER JOIN 은 배타적(exclusive) 결합 이다. 두 집합(테이블) 모두에서 일치..
참고 자료 http://support.microsoft.com/kb/197297/ko 용어 정리 Driving Table : 조인에서 기준이 되는 테이블 (= Outer Table) Drived Table : 조인에서 결합 되어지는 테이블 (= Inner Table) Nested Loop - 두개 이상의 테이블에서, Driving Table에서 먼저 조건에 맞는 집합을 만들고, Drived Table에서 조건이 맞는 결과를 얻어낸 후 Row를 결합하여 원하는 결과를 추출하는 방식 (Driving Table의 한 행당 Drived Table의 데이터 검색이 일어난다). - 부분 범위 처리 가능 (정지, 재개 가능. 예를 들어 조건에 만족하는 데이터 1000개만 얻어낸 상태에서, 요청이 들어올경우 1001~..
Page MS-SQL에서 다뤄지는 데이터가 저장되는 최소 단위는 Page 입니다. Page의 크기는 8KB ( 1024 * 8 = 8192 btyes ) 이지만, 실제로 데이터를 저장할 수 있는 maximum row size 는 8090 bytes 입니다. Page의 구성 1. header (96 bytes) 이전페이지와 다음페이지의 정보 저장 2. Data rows (8090 bytes) 실제 데이터 저장부분 3. offset 부분 각 행의 첫번째 바이트가 페이지의 시작부분에서 얼마나 멀리 떨어져 있는지를 저장 Extent 페이지가 최대 8개가 모여 한개의 Extent를 이룹니다. 테이블, 인덱스가 물리적으로 저장되는 최소 단위라고 생각하시면 됩니다. Extent의 크기는 64KB ( 8192 * 8 ..
1. Clustered Index만 존재했을 때 CI의 정렬 기준으로 실제 데이터를 정렬해 둡니다. 데이터를 찾을 때 CI를 타느냐, 테이블 스캔 하느냐의 차이만 존재합니다. 1-2. 구조 루트페이지와 리프페이지의 2중 구조 루트페이지에는 검색기준이 리프페이지에는 실제 데이터가 검색기준에 맞쳐 분류되어있음 쿼리시 루트 페이지에서 해당 검색기준을 통해 리프페이지(실제데이터)를 검색하여 결과처리 데이터 변경작업시 루트페이지에 맞쳐서 리프페이지를 다시 분류작업함 2. Non-Clustered Index만 존재했을 때 이 경우 NI의 키 값 대로 정렬된 데이터가 존재하고, 키 값에 대응하는 실제 데이터의 주소 (파일, 페이지, 행번호) 를 가집니다. NI에서의 키 값에 매칭되는 값을 찾은 후, 실제 데이터를 찾..
데이터를 찾는 과정이 필요한 모든 일 (Select, Update, delete, Insert 모두) 에 영향을 준다. 데이터를 빠르게 찾기 위해 필요하다. 인덱스 추가시 인덱스 관리 비용(처리하는 일, 인덱스 관리용 공간 필요) 인덱스는 항상 타는게 아니다. 인덱스를 탈 때 통계를 참고하는데, 이 통계가 최적 수행 방법을 산출하려면, 통계가 최신에 가까워야 좋다. 하지만, 통계 갱신에는 비용이 존재하므로, 적절한 수위를 유지하는 것이 좋다. 인덱스가 걸려 있는 경우에는 정렬이 필요하다. 1Page가 꽉 찬 상태에서, 데이터가 중간 삽입 될 경우, 들어갈 데이터를 포함해 데이터를 반으로 쪼개서 두개의 페이지에 넣는다. 이 것을 페이지 분할이라 부른다. 페이지 분할이 자주 일어날꺼라 생각되면 인덱스 생성시..
1. 인덱스 컬럼의 변형 select * from table where LOWER(name) ='word'; select * from table where idx - 1 = 5; 이 처럼 인덱스에 변형을 가하게 되면, DBMS가 인덱스를 이용하지 않는다. 2. NOT 또는 IN 연산자 사용 NOT일 경우 무조건 인덱스를 안타는 것이 아니다. NOT일 경우에도 인덱스를 타긴 타지만, 일반적으로, NOT에 사용된 값이 아닌 데이터의 비율이 높은 경우가 많기 때문에 인덱스를 타지 않는 경우가 많다. 마찬가지로 IN일 경우에도, IN에 포함된 데이터들의 비율이 매우 높다면 FULL SCAN을 하는 것이 낫다고 DBMS가 판단하면 인덱스를 타지 않는다. 3. 와일드 카드 LIKE문장에서 범위를 전체를 지정시 se..
자~ 간만에 C++ 이야기입니다~! C언어의 난이도를 몇배로 높여준! 많은 사람들이 C언어를 포기하게 만든 원흉! 포인터부터 얘기해보죠. 포인터(*)란 아시다시피, 메모리 주소를 가리키는 변수입니다. 가리키는 곳은 언제든 변할 수 있고, 아무곳도 가리키지 않는 상태(NULL 포인터)도 있습니다. 참조자(&)란 뭘까요? 참조자는 변수의 다른 이름입니다. 포인터와 비슷하죠? 포인터와의 차이점은 참조자는 아무것도 가리키지 않는 상태가 없다는 것입니다. 포인터가 어려운 이유는 사용법 자체가 아니라 관리가 어렵기 때문입니다. 다음 코드를 살펴 보시죠. 포인터로 인해 발생할 수 있는 몇가지 상황을 보여줍니다. int *pDynamic= new int; int *ptr= pDynamic; delete pDynamic..
- Total
- Today
- Yesterday
- SDL
- c언어
- perfmon
- 게임개발포에버
- 임백준
- svn
- TraceRoute
- ftp
- 조엘 온 소프트웨어
- TDD
- EzShortcut
- 좋은 프로그래머
- MS-SQL
- 디자인 패턴
- 멀티스레드
- 엘키
- 리버스 엔지니어링
- Rails
- RoR
- CppSQLite
- EasyExec
- NDC2013
- 게임데브포에버
- 루비
- 디버깅
- SQLite Spy
- ruby
- 루비 온 레일즈
- Ruby on Rails
- 바로가기 프로그램
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |