Microsoft SQL Server
색인
수색…
클러스터 된 인덱스 만들기
클러스터 된 인덱스를 사용하면 리프 페이지에 실제 테이블 행이 포함됩니다. 따라서 클러스터형 인덱스는 하나만있을 수 있습니다.
CREATE TABLE Employees
(
ID CHAR(900),
FirstName NVARCHAR(3000),
LastName NVARCHAR(3000),
StartYear CHAR(900)
)
GO
CREATE CLUSTERED INDEX IX_Clustered
ON Employees(ID)
GO
비 클러스터형 인덱스 만들기
비 클러스터형 인덱스는 데이터 행과 별도의 구조를가집니다. 비 클러스터형 인덱스에는 클러스터되지 않은 인덱스 키 값이 들어 있으며 각 키 값 엔트리에는 키 값이 들어있는 데이터 행에 대한 포인터가 있습니다. SQL Server 2008 / 2012에는 최대 999 개의 클러스터되지 않은 인덱스가있을 수 있습니다.
참조 용 링크 : https://msdn.microsoft.com/en-us/library/ms143432.aspx
CREATE TABLE Employees
(
ID CHAR(900),
FirstName NVARCHAR(3000),
LastName NVARCHAR(3000),
StartYear CHAR(900)
)
GO
CREATE NONCLUSTERED INDEX IX_NonClustered
ON Employees(StartYear)
GO
색인 정보 표시
SP_HELPINDEX tableName
보기에 색인
CREATE VIEW View_Index02
WITH SCHEMABINDING
AS
SELECT c.CompanyName, o.OrderDate, o.OrderID, od.ProductID
FROM dbo.Customers C
INNER JOIN dbo.orders O ON c.CustomerID=o.CustomerID
INNER JOIN dbo.[Order Details] od ON o.OrderID=od.OrderID
GO
CREATE UNIQUE CLUSTERED INDEX IX1 ON
View_Index02(OrderID, ProductID)
낙하 지수
DROP INDEX IX_NonClustered ON Employees
크기 및 조각화 인덱스를 반환합니다.
sys.dm_db_index_physical_stats (
{ database_id | NULL | 0 | DEFAULT }
, { object_id | NULL | 0 | DEFAULT }
, { index_id | NULL | 0 | -1 | DEFAULT }
, { partition_number | NULL | 0 | DEFAULT }
, { mode | NULL | DEFAULT }
)
Sample :
SELECT * FROM sys.dm_db_index_physical_stats
(DB_ID(N'DBName'), OBJECT_ID(N'IX_NonClustered '), NULL, NULL , 'DETAILED');
인덱스 재구성 및 재 구축
avg_fragmentation_in_percent 값 | 시정 명령서 |
---|---|
> 5 % 및 <= 30 % | 재개발 |
> 30 % | REBUILD |
ALTER INDEX IX_NonClustered ON tableName REORGANIZE;
ALTER INDEX ALL ON Production.Product
REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
STATISTICS_NORECOMPUTE = ON);
테이블의 모든 인덱스 재구성 또는 재구성
인덱스 재 작성은 다음 명령문을 사용하여 수행됩니다.
ALTER INDEX All ON tableName REBUILD;
이렇게하면 인덱스가 삭제되고 다시 생성되어 조각화가 제거되고 디스크 공간이 재 확보되고 인덱스 페이지가 재정렬됩니다.
또한 다음을 사용하여 색인을 재구성 할 수 있습니다.
ALTER INDEX All ON tableName REORGANIZE;
최소한의 시스템 리소스를 사용하고 리프 노드의 논리적, 왼쪽에서 오른쪽 순서와 일치하도록 리프 수준 페이지를 물리적으로 재정렬함으로써 테이블 및 뷰의 클러스터형 및 비 클러스터형 인덱스의 리프 수준을 조각 모음합니다
모든 인덱스 데이터베이스 다시 작성
EXEC sp_MSForEachTable 'ALTER INDEX ALL ON ? REBUILD'
색인 조사
"SP_HELPINDEX Table_Name"을 사용할 수 있지만 Kimberly Tripp는 저장 프로 시저 ( 여기 에서 찾을 수 있습니다 )가 있습니다.이 예제는 열과 필터 정의를 비롯한 인덱스에 대한 자세한 내용을 보여주기 때문에 더 좋은 예입니다.
용법:
USE Adventureworks
EXEC sp_SQLskills_SQL2012_helpindex 'dbo.Product'
또는 Tibor Karaszi는 저장 프로 시저 ( 여기 에서 찾을 수 있습니다 )가 있습니다. 나중에 인덱스 사용에 대한 정보도 표시되며 선택적으로 인덱스 제안 목록을 제공합니다. 용법:
USE Adventureworks
EXEC sp_indexinfo 'dbo.Product'