SQL Server/インデックス
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-[[SQL Server のインデックス設計:https://www.slideshare.n...
*インデックスの種類 [#n224d144]
-[[SQLServerのインデックスについてざっくりとまとめてみた:...
-[[インデックスの主なオプション:https://gist.github.com/k...
-[[【SQLServer】パフォーマンスを意識したSQL:https://qiita...
**クラスタ化/非クラスタ化インデックス [#m73f60c7]
-[[クラスタ化インデックスは主キーにつけないほうがいいかも...
**複合キーのインデックス [#mcd9ece1]
-カーディナリティを意識する
-カーディナリティが高いカラムから順に指定していくのが良い
-カーディナリティが低いカラムが先頭にあると、インデックス...
--実際、同時アクセス時に更新待ち(LCK_M_U)が多発していた...
**フィルタ選択されたインデックス [#pe3d95f5]
-[[SQL Server のチューニングについてまとめてみる - その2 ...
-例えば、テーブルのあるフィールドの内容が大部分 NULL の場...
-フィルター条件は Where 句に指定するような感じ
-フィルタ選択されたインデックスを使用することで、ある条件...
-インデックスに格納される物理的な行数も減少するため、I / ...
*断片化 [#qfb225d7]
-[[インデックスの再構成と再構築:https://docs.microsoft.co...
-[[SQL Serverにおけるインデックスの再構成と再構築の性能比...
-[[断片化の状態によってインデックス (index) を再構成 (Reo...
-[[インデックスの断片化率を調べる方法:https://www.project...
-[[SQL Server INDEXの断片化の解消:https://www.ilovex.co.j...
-[[SQL Server の断片化発生の 2 種類のパターン:https://blo...
-[[SQLServerは、断片化率が高くなると、SQLが実行される際、...
-[[どうする? SQL Server のクエリ パフォーマンスが低下し...
-[[[SQL Troubleshooting] SQL Server トラブルシューティン...
**断片化調査 [#hf593d2b]
--インデックスと断片化率の一覧を取得する
SELECT 'ALTER INDEX ' + '[' + C.name + ']' + ' ON [' + D...
,D.name AS schemaname
,B.name AS table_name
,C.name AS index_name
,A.avg_fragmentation_in_percent
,A.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(),null,null,n...
LEFT OUTER JOIN sys.objects AS B
ON A.object_id = B.object_id
LEFT OUTER JOIN sys.indexes AS C
ON A.object_id = C.object_id AND A.index_id = C.index_...
LEFT OUTER JOIN sys.schemas AS D
ON B.schema_id = D.schema_id
WHERE B.type = 'U'
AND C.index_id > 0
--断片化率が30%以上のものを抽出する
AND A.avg_fragmentation_in_percent > 30
ORDER BY A.avg_fragmentation_in_percent DESC;
**断片化への対処 [#pab5ae40]
-断片化の比率が30%以下なら再構成、30%超なら再構築がセオリー
-5%に満たない場合は対処不要
**再構築と再構成 [#k2a8ba9f]
-[[インデックス再構築と再構成の違い:https://blogs.msdn.mi...
-再構築と再構成では、実行中のインデックスの使用可否や実行...
-処理に割り当てられる時間が限られていて、処理を途中でキャ...
***再構築 [#radcb2a7]
alter index [インデックス名] on [テーブル名] rebuild
-1つのトランザクションでインデックスを完全に再作成
-再構築は1つのトランザクションなので、キャンセルすれば当...
-再構築はインデックスを作り直すので、インデックス行数 (テ...
-再構築の場合、再作成中も元のインデックスを削除することは...
***再構成 [#cdaaa7f8]
alter index [インデックス名] on [テーブル名] reorganize
-処理単位ごと (処理単位はページ) にトランザクションが分割...
-再構成はトランザクションが分割されているため、キャンセル...
-再構成は、前のページに空きがある場合に後ろのページから前...
-再構成の場合は、ページ間で行を移動するだけなので、そのよ...
-インデックスの再構成は、行の移動を行っているページに対し...
終了行:
-[[SQL Server のインデックス設計:https://www.slideshare.n...
*インデックスの種類 [#n224d144]
-[[SQLServerのインデックスについてざっくりとまとめてみた:...
-[[インデックスの主なオプション:https://gist.github.com/k...
-[[【SQLServer】パフォーマンスを意識したSQL:https://qiita...
**クラスタ化/非クラスタ化インデックス [#m73f60c7]
-[[クラスタ化インデックスは主キーにつけないほうがいいかも...
**複合キーのインデックス [#mcd9ece1]
-カーディナリティを意識する
-カーディナリティが高いカラムから順に指定していくのが良い
-カーディナリティが低いカラムが先頭にあると、インデックス...
--実際、同時アクセス時に更新待ち(LCK_M_U)が多発していた...
**フィルタ選択されたインデックス [#pe3d95f5]
-[[SQL Server のチューニングについてまとめてみる - その2 ...
-例えば、テーブルのあるフィールドの内容が大部分 NULL の場...
-フィルター条件は Where 句に指定するような感じ
-フィルタ選択されたインデックスを使用することで、ある条件...
-インデックスに格納される物理的な行数も減少するため、I / ...
*断片化 [#qfb225d7]
-[[インデックスの再構成と再構築:https://docs.microsoft.co...
-[[SQL Serverにおけるインデックスの再構成と再構築の性能比...
-[[断片化の状態によってインデックス (index) を再構成 (Reo...
-[[インデックスの断片化率を調べる方法:https://www.project...
-[[SQL Server INDEXの断片化の解消:https://www.ilovex.co.j...
-[[SQL Server の断片化発生の 2 種類のパターン:https://blo...
-[[SQLServerは、断片化率が高くなると、SQLが実行される際、...
-[[どうする? SQL Server のクエリ パフォーマンスが低下し...
-[[[SQL Troubleshooting] SQL Server トラブルシューティン...
**断片化調査 [#hf593d2b]
--インデックスと断片化率の一覧を取得する
SELECT 'ALTER INDEX ' + '[' + C.name + ']' + ' ON [' + D...
,D.name AS schemaname
,B.name AS table_name
,C.name AS index_name
,A.avg_fragmentation_in_percent
,A.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(),null,null,n...
LEFT OUTER JOIN sys.objects AS B
ON A.object_id = B.object_id
LEFT OUTER JOIN sys.indexes AS C
ON A.object_id = C.object_id AND A.index_id = C.index_...
LEFT OUTER JOIN sys.schemas AS D
ON B.schema_id = D.schema_id
WHERE B.type = 'U'
AND C.index_id > 0
--断片化率が30%以上のものを抽出する
AND A.avg_fragmentation_in_percent > 30
ORDER BY A.avg_fragmentation_in_percent DESC;
**断片化への対処 [#pab5ae40]
-断片化の比率が30%以下なら再構成、30%超なら再構築がセオリー
-5%に満たない場合は対処不要
**再構築と再構成 [#k2a8ba9f]
-[[インデックス再構築と再構成の違い:https://blogs.msdn.mi...
-再構築と再構成では、実行中のインデックスの使用可否や実行...
-処理に割り当てられる時間が限られていて、処理を途中でキャ...
***再構築 [#radcb2a7]
alter index [インデックス名] on [テーブル名] rebuild
-1つのトランザクションでインデックスを完全に再作成
-再構築は1つのトランザクションなので、キャンセルすれば当...
-再構築はインデックスを作り直すので、インデックス行数 (テ...
-再構築の場合、再作成中も元のインデックスを削除することは...
***再構成 [#cdaaa7f8]
alter index [インデックス名] on [テーブル名] reorganize
-処理単位ごと (処理単位はページ) にトランザクションが分割...
-再構成はトランザクションが分割されているため、キャンセル...
-再構成は、前のページに空きがある場合に後ろのページから前...
-再構成の場合は、ページ間で行を移動するだけなので、そのよ...
-インデックスの再構成は、行の移動を行っているページに対し...
ページ名: