2016-08-25 9 views
0

SQL Server Expressのインストールでは、データベースで高いクエリ実行時間が得られます。データベースの構造とデータは2つの異なるソースから得られます。 1つのソースは、独自のデータベーススキームを使用して、アプリケーション用に独自に作成したデータベース(データベースA)構造です。他のソースは、別のデータベース(データベースB)のエクスポートです。エクスポート/インポートされたデータベースでクエリのパフォーマンスが遅くなる

他のデータベースからデータをインポートするには、データベースBをファイルからSQL Expressインスタンス内のテンポラリデータベースに復元します。これにより、スクリプトを使用してデータをデータベースAにコピーします。スクリプトは、インデックス付きであっても。

一時データベースとデータベースbでクエリを実行すると、パフォーマンスに大きな違いがあります。

テンポラリ・データベースで10秒かかる問合せは、データベースbで10分です。

SQL Management Studioを使用してデータベースを同じインスタンスにエクスポートすると、同じ問題が発生するため、問題はsrcriptではないとみなされます。

これらのパフォーマンスの違いは何か?

+0

統計情報の相違 – jarlh

答えて

1

SET STATISTICS IO ON; 
SET STATISTICS TIME ON; 

[YOUR QUERY] 

前に、チェック実際のクエリプランのオプション(下図を参照)で、このlitleコードで両方のデータベースで同じクエリを実行してみてください。

Query Plan

次に、2つの結果

Message-ExecutionPlan

を比較し、彼らは同じですか?

+0

結果は異なります。非常に目立つのは、両方の実行に使用されるRAMの量です。 1は70MBを使用し、もう1つは約456MBを使用しました。しかし、その理由、あるいはどの指標を確認する必要があるのでしょうか? – Bob

+0

あなたのSQL Serverのプロパティ(SQL Serverインスタンス上の管理スタジオ右のプロパティ - >プロパティ)を見て、メモリに移動し、最小サーバーメモリと最大サーバーメモリを探します – liotims

関連する問題