-> PFS를 조회하여 페이지 여유공간이 50_PCT_FULL이하인 경우에만 재사용한다.
2. 널이 포함된 데이터를 ORDER BY 로 정렬하면 널이 오는 순서는 ?
-> 제일앞에 온다. (참고로 오라클은 제일뒤에 온다구 한다.)
궁금하면 요쿼리를 함 실행해 보세요.
--drop table #t
create table #t (a1 varchar(10))
insert #t values ('a')
insert #t values (null)
insert #t values ('c')
insert #t values ('d')
select * from #t order by a1 asc
3. 넌 유니크 인덱스 상에서 동일 값일경우 인덱스의 정렬순서는 ?
-> 1. 힙상태 : 같은 값이면 rid순으로 정렬
-> 2. 클러스터 : 클러스터키 순서
※ 참고 : 클러스터 인덱스가 고유하지 않을경우 클러스터 인덱스를 유니크하게 만들기 위하여
int형 숫자(1부터 증가)를 붙여서 유니크하게 하는데 이때 int는 1부터 순차적으로 증가한다.
-> 그렇다구 무조건 int형 숫자가 붙는건 아니구
예를 들어서 col1 이라는 컬럼에 'a'라는 키값이 있는데 또다시 'a'라는 값이 입력되면
기존에 있던 'a'는 그래로 있구 새롭게 추가된 'a'+1 이런식으로 번호가 증가됨.
4. sql 서버 extent 할당 테스트 (자동이 무조건 다 좋은것은 아닌듯)
결론 : sql서버는 무조건 처음 8page는 mixed extent로 할당을 한다.
-> 힙, 클러스터, 인덱스 모두다 동일함.
-> 8개의 extent에 1개씩의 page를 할당한다.
-> 처음 8page를 scan하기 위해서는 8개의 extent를 옮겨 다녀야 한다. -> 황당한 현실
-> 그다음 부터는 무조건 extent단위로 할당한다.(8page전체를 전부다 사용)
※ 최초 8개 page할당방법
1. pfs를 찾아서 여유공간이 있는 mixed extent를 찾아서 그중 한페이지 사용
2. 그다음 row insert시 mixed extent중 비어있는 page사용
3. 운이 좋으면 2~3개의 extent에 최초 8개의 page를 할당할 수도 있으나
운이 나쁘면 8개의 extent에 1개씩의 page를 할당할수도 있음.
-> 그러나, 힙상태에서 클러스터 인덱스를 만들어 페이지를 재구성하면서
익스텐트를 할당할때 균일익스텐트를 할당한다.
또는 기존 클러스터인덱스를 다시만들면서 익스텐트를 할당할때 균일익스텐트를 할당한다.
5. 문자형을 자릿수 설정안하구 그냥 선언하면 몇자리나 될까 ?
--> 요건 얼마전 데브피아 q/a 에 올라온 내용인데 재미있어서 그냥 넣었음.
--drop table #t
create table #t(c1 char, c2 varchar, c3 nchar, c4 nvarchar)
문제 이때 c1,c2,c3,c4의 길이는 얼마인가 ?
sp_help #t
Column_name Type Length
------------- ----------- --------
c1 char 1
c2 varchar 1
c3 nchar 2
c4 nvarchar 2
'SQL' 카테고리의 다른 글
| sp를 WITH ENCRYPTION 암호화 한거 풀기 (0) | 2007/06/07 |
|---|---|
| 심심풀이 5탄 (0) | 2007/06/07 |
| 심심풀이 3탄 (0) | 2007/06/07 |
| 심심풀이 4.5탄 (0) | 2007/06/07 |
| ASP에 날짜시간에서 시간 오전/오후 제거하고 시간 24.. (0) | 2007/06/07 |
| 심심풀이 1탄 (0) | 2007/06/07 |
0 Trackback,
0 Comment,
:




최근에 달린 댓글
링크
최근에 받은 트랙백
태그목록