問題タブ [database-tuning-advisor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - select 句に nvarchar(max) 列を含めると、実行時間が大幅に増加します
以下に示すように、列とインデックスで構成される単純なテーブルがあります。
これは、SQL データベース エンジン チューニング アドバイザーの推奨に従って作成したインデックスです。すべての列が含まれています。
picture-1 でチェックされた列を追加すると、実行時間が大幅に増加します。私のテスト結果は次のとおりです。
前述の列のいずれも含めない場合。
(影響を受ける 54 行) テーブル 'PROPOSAL_PROCESS'。スキャン カウント 1、論理読み取り 58、物理読み取り 2、先読み読み取り 55、LOB 論理読み取り 0、LOB 物理読み取り 0、LOB 先読み読み取り 0。
(1 行が影響を受けます)
SQL Server 実行時間: CPU 時間 = 31 ミリ秒、経過時間 = 16 ミリ秒。 SQL Server の解析時間とコンパイル時間: CPU 時間 = 0 ミリ秒、経過時間 = 0 ミリ秒。
SQL Server 実行時間: CPU 時間 = 0 ミリ秒、経過時間 = 0 ミリ秒。
前のクエリの select 句に CURRENT_PROPOSAL_OBJECT を追加すると
(影響を受ける 54 行) テーブル 'PROPOSAL_PROCESS'。スキャン カウント 1、論理読み取り 58、物理読み取り 2、先読み読み取り 55、LOB 論理読み取り 0、LOB 物理読み取り 0、LOB 先読み読み取り 0。
(1 行が影響を受けます)
SQL Server 実行時間: CPU 時間 = 0 ミリ秒、経過時間 = 545 ミリ秒。 SQL Server の解析時間とコンパイル時間: CPU 時間 = 0 ミリ秒、経過時間 = 0 ミリ秒。
前のクエリの select 句に INTERFACTORING_XML を追加すると
(影響を受ける 54 行) テーブル 'PROPOSAL_PROCESS'。スキャン カウント 1、論理読み取り 58、物理読み取り 2、先読み読み取り 55、LOB 論理読み取り 1822、LOB 物理読み取り 376、LOB 先読み読み取り 0。
(1 行が影響を受けます)
SQL Server 実行時間: CPU 時間 = 47 ミリ秒、経過時間 = 2415 ミリ秒。 SQL Server の解析時間とコンパイル時間: CPU 時間 = 0 ミリ秒、経過時間 = 0 ミリ秒。
前のクエリの select 句に CURRENT_PROPOSAL_OBJECT を追加すると
(影響を受ける 54 行) テーブル 'PROPOSAL_PROCESS'。スキャン カウント 1、論理読み取り 58、物理読み取り 2、先読み読み取り 55、LOB 論理読み取り 5048、LOB 物理読み取り 944、LOB 先読み読み取り 0。
(1 行が影響を受けます)
SQL Server 実行時間: CPU 時間 = 47 ミリ秒、経過時間 = 6912 ミリ秒。 SQL Server の解析時間とコンパイル時間: CPU 時間 = 0 ミリ秒、経過時間 = 0 ミリ秒。
結局のところ、私は 6912 ミリ秒に直面しています。このひどいパフォーマンスの理由は何ですか?
いくつかのインデックスを作成できませんか? これは、大きなサイズの nvarchar を同じテーブルに配置することから発生した悪い設計の結果ですか?
前もって感謝します
編集:問題を再生成するためのスクリプトは次のとおりです。sql-fiddleで同じ問題を作成しようとしましたが、1行も挿入されませんでした。
編集 2: select 句にすべての列を含め、クエリが 2 行を返すようにする別の提案 Id を指定した場合、実行時間は通常約 100 ミリ秒のままです。クエリの実行時間は、返される行の増加に応じてますます悪化します。インデックスとの接続。