본문 바로가기

MS-SQL13

인덱스 칼럼순서 인덱스 칼럼순서 여러가지 칼럼에 인덱스를 걸 때 검색할 때 어떤 순서로 하냐에 따라서 성능에 큰 영향을 미친다 이유를 살펴보자 실험 더미 데이터 늘리고 인덱스 걸기 USE Northwind; select * INTO TestOrders From Orders DECLARE @i INT = 1; DECLARE @emp INT; SELECT @emp = MAX(EmployeeID) From Orders -- 더미 데이터 늘리기 SELECT * FROM TestOrders while(@i < 1000) BEGIN INSERT INTO TestOrders(CustomerID, EmployeeID, OrderDate) SELECT CustomerID, @emp + @i, OrderDate FROM Orders SE.. 2022. 4. 6.
북마크 룩업 북마크 룩업 NonClustered일 경우 북마크 룩업은 index seek를 한 뒤 RID값을 통해서 값을 찾는 행위를 말한다. 북마크 룩업으로 인해서 굉장히 성능 저하가 많이 발생할 수도 있다.. 세팅 USE Northwind; -- 인덱스 접근 방식 SELECT * INTO TestOrders FROM Orders SELECT * FROM TestOrders CREATE NONCLUSTERED INDEX Orders_Index01 ON TestOrders(CustomerID) -- 조회 DBCC IND(&#39;Northwind&#39;,&#39;TestOrders&#39;,2) -- 1088 -- 1040 1056 1057 -- Heap Table[{Page} {Page} ... ] SET STA.. 2022. 4. 5.
indexScan vs IndexSeek indexSeek가 빠른가, IndexScan이 빠른가 ? 결론을 먼저 말하면 때에 따라 다르다 왜냐? clustered가 존재하는지, 없는지 NonClustered Index만 있는지 모두 고려해야하기때문이다.. USE Northwind; -- 인덱스 접근 방식 CREATE TABLE TestAceess ( id INT NOT NULL, name NCHAR(50) NOT NULL, dummy NCHAR(1000) NULL ); GO CREATE CLUSTERED INDEX TestAccess_CI ON TestAceess(id); GO CREATE NONCLUSTERED INDEX TestAccess_NCI ON TestAceess(name) DECLARE @i INT; SET @i = 1; WHILE.. 2022. 4. 5.
Clustered vs NonClustered Clustered . NonClustered Clustered Index는 동일한 값에도 인덱스를 걸 수 있다 (pk와의 차이점) 그런데 동일한 값에서도 데이터를 식별해야해서 Uniquifier가 존재한다. Clusterd (영한 사전)이고 Non - Clusterd(색인)으로 본다 왜? Clustered index를 보면 바로 데이터를 찾아 갈 수 있는데 Non clustered는 데이터를 색인처럼 중복해서 가지고 있을 수 있기 때문이다. Clusterd는 leaf Page가 Dage Page이다. 데이터는 ClusterdIndex 키 순서로 정렬된다.. Non - Clusterd는 Clusterd Index에 따라서 다르게 결정된다.. 1) Clusterd Index가 존재하는 경우 HEAP Tabl.. 2022. 4. 5.