複雑なSQL問合せを作成する際に、適切な索引を使用していることを確認し、フル・テーブル・スキャンを回避する方法を教えてください。インデックスを持つ列(プライマリキー、ユニークキーなど)にのみ参加するようにすることでそれを行います。これで十分ですか?Sqlインデックスとフル・テーブル・スキャン
2
A
答えて
1
クエリの実行計画を見て、クエリオプティマイザが物事を検索する必要があると考える方法を見てください。この計画は、一般に、テーブルの統計、インデックスの選択性、および結合の順序に基づいています。オプティマイザは、フル・テーブル・スキャンの実行が索引ルックアップよりも「安価」であると判断できることに注意してください。探すために
他のもの:
可能な場合は、サブクエリを避けます。
は「OR'-述語の使用状況に依存して異なる戦略があるので、句
4
クエリの実行計画をデータベースに問い合わせて、そこから処理を進めます。
where句にも表示されている列のインデックスを作成することを忘れないでください。
2
最高のインデックスが何であるかを言うのは難しいですで
を最小限に抑えます。それでも、あなたは今インデックスを作るべきクーペのものがあります。
- インデックス時にはselect文のパフォーマンスが向上し、挿入および更新時のパフォーマンスが低下します。
- インデックステーブルには、特定のフィールドのキーとして使用する必要はありません。また、実際の生活指数には、ほとんどの場合、複数のフィールドが含まれています。
- パフォーマンスが満足できる場合は、「将来の目的」のインデックスを作成しないでください。インデックスがまったくない場合でも。
インデックスをチューニングするときは、常に実行計画を分析してみます。実験するのを恐れないでください。
-
+
- 表スキャンは常に悪いことではありません。
これは私のものです。
1
データベースチューニングアドバイザー(SQL Server)を使用してクエリを分析します。クエリのパフォーマンスを調整するために必要なインデックスを提案します
関連する問題
- 1. のC#CLR UDFスキャンSQLテーブル
- 2. Oracle SQLのテーブルとインデックスの統計
- 3. のjavaを持つテーブルのSQLをスキャンごとに5秒
- 4. SQLフル行重複と部分重複
- 5. SQL Serverテーブル内のクラスタ化インデックスと非クラスタ化インデックス
- 6. はフル(私の)SQLには3つのテーブル
- 7. JavaでのSQLフル結合
- 8. SQL Azureとインデックス
- 9. SQLスキャン/バリューインターフェイス問題
- 10. SQLテーブルへの更新、インデックスなし
- 11. インデックス付きのSQL Serverテーブル同義語
- 12. sql 2008のインデックスのないテーブルのリスト
- 13. SQL - 内部結合テーブルの複合インデックス?
- 14. ng-repeatでフル月間表示のテーブル?
- 15. zeppelin%sqlにフル・カラム・サイズを表示
- 16. SQLサーバーでフル結合を使用
- 17. AzureのSQL Serverのtempdbのフル
- 18. 注文なしのSQL Serverフル参加
- 19. SQLデータベースのインデックス付きテーブルとクエリの比較対HashMap
- 20. T-SQLで特定のテーブルとカラムのインデックス名を取得
- 21. RDDからインデックスを使用して、スパークにおけるHadoopのデータベース・テーブルをスキャン
- 22. SQL Serverでテーブルのインデックスを作成すると、インデックス付きテーブルに見えるビューに影響しますか?
- 23. スキャン:SQL Serverプロファイラトレースで開始され、不正なインデックスIDが生成される
- 24. SQLクエリーを作成する方法インデックス範囲スキャンを使用する
- 25. ゴランのSQL NULL値をスキャン
- 26. フル
- 27. SQLクエリは、私は2つのテーブルを持っている代わりに、インデックスベースのスキャン全表をスキャン
- 28. Sybaseの一時テーブルとインデックス
- 29. テーブル 'インデックス'
- 30. テーブルのインデックスは、とにかく完全にスキャンする必要がありますか? (MySQL)
2つ目のポイントを明確にしてください。 ORの問題は何ですか? – SQB
多くの場合、一部のフィールドに特定の値がある行または空の行を選択する必要があります。その結果、索引は使用されません。以前は、OR述語で予期しない動作が発生しました。例として、A = X OR A = Yのクエリ計画は、A = YまたはA = Xの場合に異なる場合があります。 –