문제
SQL Server 2000에서 어떤 가상 색인이 사용되는지 아는 사람이 있습니까? 나는 15+ 그러한 색인이있는 테이블을 가지고 있지만 그들이 무엇을 만들었는지 전혀 모른다. 삭제/인서트 속도를 늦출 수 있습니까?
해결책
가상 색인은 일반적으로 인덱스 튜닝 마법사를 실행할 때 생성되며 정상적인 상황에서는 마법사가 정상화되면 제거됩니다.
일부는 주변에 남아 있으면 몇 가지 문제를 일으킬 수 있습니다. 이 링크를 제거하는 방법에 대한 링크.
다른 팁
2000 년은 확실하지 않지만 2005 년에는 가상의 지수와 데이터베이스 개체가 일반적으로 DTA (데이터베이스 조정 고문)
이 쿼리를 실행하여 인덱스가 가설 적인지 확인할 수 있습니다.
SELECT *
FROM sys.indexes
WHERE is_hypothetical = 1
튜닝 어드바이저에게 인덱싱 전략을 기반으로하는 좋은 정보를 제공 한 경우, 결과를 일반적으로 신뢰한다고 말하지만, 물론 맹목적으로 신뢰하기 전에이를 할당 한 방법을 조사해야합니다. 모든 상황은 다를 것입니다.
"SQL Server 가상 색인"에 대한 Google 검색이 다음 기사 첫 번째 결과로. 인용하다:
가상의 인덱스 및 데이터베이스 개체는 일반적으로 DTA (데이터베이스 튜닝 어드바이저)가 만든 객체입니다.
가상의 색인은 데이터베이스 튜닝 어드바이저에 의해 생성 된 색인입니다. 일반적으로 인덱스가 너무 많다는 것은 좋은 아이디어가 아니며 사용되지 않는 쿼리 계획을 검사해야합니다.
에서 sys.indexes:
is_hypothetical bit
1 = Index is hypothetical and cannot be used directly as a data access path.
Hypothetical indexes hold column-level statistics.
0 = Index is not hypothetical.
문서화되지 않은 상태에서 수동으로 만들 수 있습니다 WITH STATISTICS_ONLY
:
CREATE TABLE tab(id INT PRIMARY KEY, i INT);
CREATE INDEX MyHypIndex ON tab(i) WITH STATISTICS_ONLY = 0;
/* 0 - withoud statistics -1 - generate statistics */
SELECT name, is_hypothetical
FROM sys.indexes
WHERE object_id = OBJECT_ID('tab');