Clustered Index
Leaf Page = Data PageNon-Clustered Index
USE Northwind;
-- 테이블 복사
SELECT * INTO TestOrders FROM Orders;
-- 인덱스 생성 (Non-Clustered)
CREATE NONCLUSTERED INDEX Orders_Index01 ON TestOrders(CustomerID);
SELECT * FROM TestOrders WHERE CustomerID = 'QUICK';
📊 결과:
SELECT * FROM TestOrders WITH(INDEX(Orders_Index01))
WHERE CustomerID = 'QUICK';
📊 결과:
📌 왜 느려졌을까?
Orders_Index01에는 CustomerID만 있음.-- 기존 인덱스 삭제
DROP INDEX TestOrders.Orders_Index01;
-- CustomerID + ShipVia 복합 인덱스 생성
CREATE NONCLUSTERED INDEX Orders_Index01
ON TestOrders(CustomerID, ShipVia);
-- 조회
SELECT *
FROM TestOrders WITH(INDEX(Orders_Index01))
WHERE CustomerID = 'QUICK' AND ShipVia = 3;
📊 결과:
🔍 왜 빠른가?
-- 기존 인덱스 삭제
DROP INDEX TestOrders.Orders_Index01;
-- CustomerID만 정렬 키, ShipVia는 포함만
CREATE NONCLUSTERED INDEX Orders_Index01
ON TestOrders(CustomerID)
INCLUDE (ShipVia);
-- 조회
SELECT *
FROM TestOrders WITH(INDEX(Orders_Index01))
WHERE CustomerID = 'QUICK' AND ShipVia = 3;
📊 결과:
📝 설명:
CREATE CLUSTERED INDEX Orders_Clustered
ON TestOrders(OrderID); -- 정말 중요한 컬럼만!
📌 유의사항: