2017-07-28 11 views
0

DB操作にEntityフレームワークを使用しているアプリケーションがあります。削除操作を実行するときの1つのテーブルでは、3分以上かかります。しかし、他の同様のテーブルには時間がかかりません。私は、コードをデバッグして、コードで問題はないことを確認します。しかし、SQL Serverでクエリを実行するには多くの時間がかかりました。SQL Serverでクエリを削除するパフォーマンスが遅い

この問題のトラブルシューティング手順/根本原因は何ですか?

私のテーブルが enter image description here

+0

どのようにあなたのデータを削除しますか?それ以外の場合は、それに答えるのは難しいです。 –

+0

テーブルを参照している外部キーの数はいくつですか? –

+0

@EvaldasBuinauskas Entity Frameworkを使用したデータの削除。また、私はクエリでチェックします。 [値] WHERE [Id] = 'a3e57902-f358-4283-978c-37f9cd00793r' GO – LahiruD

答えて

0

何かが...私たちは全体像を見ていない、ここ

を加算されていない

Id (PK,uniqueidentifier,not null) 
FirstValue(real,not null) 
SecondValue(real,not null) 
ThirdValue(real,not null) 
LastValue(int,not null) 
Config_Id(FK,uniqueidentifier,not null) 

、以下のようなクエリ実行プランです削除を遅くすることができるものは数多くあります(通常):

  • (私はここケースが疑われる)多くのインデックス
  • デッドロックが
  • (ここではそうではありません知っている)レコードの多くを削除し、ブロックする(これは、開発や生産データベースである?)
  • あなたがPLできます
  • カスケードをチェックする
  • 多くの外部キーを成長させる必要が
  • のトランザクション・ログを削除トリガー(私はこれがまた起こっかもしれない疑いがある)

SSMSの「依存関係の表示」機能のスクリーンショットを簡単に表示できますか?これを取得するには、オブジェクトエクスプローラでテーブルを右クリックし、View Dependenciesを選択します。

また、あなたは、masterデータベース上でクエリを開き、次のクエリを実行し、結果を投稿することができます:

SELECT name, value, value_in_use, minimum, maximum, [description], is_dynamic, is_advanced 
FROM sys.configurations WITH (NOLOCK) 
where name in (
    'backup compression default', 
    'clr enabled', 
    'cost threshold for parallelism', 
    'lightweight pooling', 
    'max degree of parallelism', 
    'max server memory', 
    'optimize for ad hoc workloads', 
    'priority boost', 
    'remote admin connections' 
) 
ORDER BY name OPTION (RECOMPILE); 

SELECT DB_NAME([database_id]) AS [Database Name], 
     [file_id], [name], physical_name, [type_desc], state_desc, 
     is_percent_growth, growth, 
     CONVERT(bigint, growth/128.0) AS [Growth in MB], 
     CONVERT(bigint, size/128.0) AS [Total Size in MB] 
FROM sys.master_files WITH (NOLOCK) 
ORDER BY DB_NAME([database_id]), [file_id] OPTION (RECOMPILE); 
関連する問題