SELECTステートメントで一時テーブルを使用すると、論理I/Oカウントが向上するのはなぜですか?それを減らすのではなく、データベースへのヒットの量を増やすのではないでしょうか。これは、「問題」がセクションに分割されているためですか?私は裏で何が起こっているのか知りたいです。少なくともmysqlので、TMPのテーブルをデータベース側で収集構造体に結果を構築する問題のクラスがありますHD一時テーブルとSQL SELECTパフォーマンス
答えて
一般的な答えはありません。これは、テンポラリテーブルの使用方法によって異なります。
一時テーブルは、複雑なフィルタ/結合の後に複数回作成された行をバッチで後でキャッシュすることで、IOを削減できます。このようにして、DBは、レコードのサブセットのみが必要な場合に、ベーステーブルに複数回ヒットすることを避けることができます。
一時テーブルは、クエリで後で使用されないレコードを格納するか、または他のデータでよりよく使用されていた可能性のあるエンジンのキャッシュ内に多くの領域を占有することによってIOを増加させる可能性があります。
すべての内容を使用する一時テーブルを作成するのは、クエリオプティマイザが一時テーブルを見過ごすことができず、(おそらく)不必要なデータのspoolこれをソース表からストリーミングできるようにするのではなく、
あなたのRAMまたはあなたの設定がそのようなジブmemeoryテーブルを許可していない場合にのみ、tempテーブルが正常に遅くなるディスクを使用している場合に限り、tempテーブルが通常MEMORYタイプとしてビルドされます。 – Rufinus
、結果の部品をクライアントに返すよりも、各部品の丸めをする方がはるかに好ましい方法です。例えば
:任意の深さの再帰的な関係(のボス)
データがないと、クエリが効率的に実行可能な方法でインデックス化されることはありませんクエリの問題の別のクラスがあります。結果をカスタム構造で索引付けできるコレクション構造にすると、これらの問合せの論理IOが減少します。
を打つ何よりものSELECTがはるかに速くなって、RAMに保存されている私の知る限り
私はテンポラリテーブルによって、WHERE句のサブ選択を意味するつもりです。
クエリオプティマイザがサブ選択/一時表に出会うと、何をすべきかについていくつかの前提ができます(これは、セミジョイン操作と呼ばれ、通常はクエリのテキスト実行計画で参照できます)。そのデータで本質的に、オプティマイザは、サブ選択の結果セットの結合を実行する実行プランを作成し、他のテーブルから読み取る必要がある行の数を減らします。行数が少ないため、クエリエンジンはディスク/メモリからのページを少なく読み込み、必要なI/O量を減らすことができます。
- 1. ビューと一時テーブルのパフォーマンスの差
- 2. SQL Serverの一時テーブルとテーブル変数
- 3. INSERT INTOテーブルSELECTとSELECT INTOテーブルのパフォーマンスの差
- 4. 一時的なSQL Serverテーブルのパフォーマンスを調整する方法
- 5. SQL Server 2005一時テーブル
- 6. SQLサーバーの一時テーブル
- 7. SQLパフォーマンス - SELECT COUNT対LIMIT 1のSELECT ID
- 8. SQLテーブルのセットアップとパフォーマンス
- 9. テーブルのパフォーマンスとビューSQL Server
- 10. Visual Studio SQL Server 2016データベースプロジェクトと一時テーブル
- 11. SQL ServerのSELECTのパフォーマンスがSQL Serverで
- 12. SQL 2005 - 一時テーブルの問題
- 13. SQLクエリのヘルプ - 一時テーブルの
- 14. 動的SQLを一時テーブルに実行
- 15. 一時テーブルとサブセレクトのパフォーマンスが大きく異なる理由
- 16. SQL Serverの組合一時テーブル
- 17. SQLサーバーの一時テーブルとカーソルの比較
- 18. 共通テーブル式と一時テーブル
- 19. PostgreSQLの大きなテーブルのSELECT/INSERTパフォーマンス?
- 20. INSERT-SELECT(Oracle PL/SQL) - パフォーマンスの問題
- 21. Redshiftパフォーマンス:SQLクエリとテーブルの正規化
- 22. 一時テーブルと分割文字列を持つSQL Serverのcte
- 23. SQL Serverの一時テーブルの列の一覧を取得
- 24. SQLの永続的な一時テーブル?
- 25. SQL SELECTクエリの関係テーブル
- 26. CTASとAzure SQLデータウェアハウスの空の列テーブルへのSELECT/SELECT
- 27. テーブル変数SQL Serverストアドプロシージャの挿入時のパフォーマンスが悪い
- 28. 私はこのような一時テーブルにCSVをロードしていますSQL Serverの一時テーブルのカラム型
- 29. SQL tempテーブルと物理(実際の)テーブルのパフォーマンス
- 30. Sybaseの一時テーブルとインデックス
DBMSとは何ですか?どのSQLを話していますか?それを貼り付けてください! –