インデックス調整
1752 ワード
質問する
条件セクションが次の場合、インデックスは[deptno+ename]順に整理され、[ename+deptno]順に整理されますが、インデックススキャン効率に差はありません.
-->
非クラスタインデックスを作成します.
CREATE NONCLUSTERED INDEX IX_Customer_FirstName_LastName ON dbo.Customers(FirstName, LastName) FirstName、LastNameの検索
IX Customer FirstName LastNameに乗る
IX Customer FirstName LastNameに乗る
IX Customer FirstName LastNameに乗る
リンクテキスト
インデックスによってテーブルにアクセスする回数が同じであっても、インデックス構成はスキャン効率に影響します.したがって、インデックススキャンの効率を向上させるためには、インデックスコラムの順序を変更する必要があることが多い.
A、Bテーブルなら
Aには50個のデータがあり、Bには1000個のデータがある.
もし、もし
条件セクションが次の場合、インデックスは[deptno+ename]順に整理され、[ename+deptno]順に整理されますが、インデックススキャン効率に差はありません.
-->
非クラスタインデックスを作成します.
CREATE NONCLUSTERED INDEX IX_Customer_FirstName_LastName ON dbo.Customers(FirstName, LastName)
SELECT CustomerId, FirstName, LastName
FROM dbo.Customers WITH(NOLOCK)
WHERE FirstName = 'AAA' AND LastName = 'BBB'
-> Index Seek(NonClustered)IX Customer FirstName LastNameに乗る
SELECT CustomerId, FirstName, LastName
FROM dbo.Customers WITH(NOLOCK)
WHERE LastName = 'BBB' AND FirstName = 'AAA'
-> Index Seek(NonClustered)IX Customer FirstName LastNameに乗る
SELECT CustomerId, FirstName, LastName
FROM dbo.Customers WITH(NOLOCK)
WHERE FirstName = 'AAA'
-> Index Seek(NonClustered)IX Customer FirstName LastNameに乗る
SELECT CustomerId, FirstName, LastName
FROM dbo.Customers WITH(NOLOCK)
WHERE LastName = 'BBB'
->インデックススキャンリンクテキスト
インデックスによってテーブルにアクセスする回数が同じであっても、インデックス構成はスキャン効率に影響します.したがって、インデックススキャンの効率を向上させるためには、インデックスコラムの順序を変更する必要があることが多い.
A、Bテーブルなら
Aには50個のデータがあり、Bには1000個のデータがある.
もし、もし
SELECT A.NO, B.EX
FROM A WITH(NOLOCK)
INNER JOIN B ON A.NO = B.NO
スピードは速いけどSELECT A.NO, B.EX
FROM B WITH(NOLOCK)
INNER JOIN A ON B.NO = A.NO
遅いBのデータはAより多い.Reference
この問題について(インデックス調整), 我々は、より多くの情報をここで見つけました https://velog.io/@sean1118/인덱스-튜닝テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol