2016-04-05 22 views
-1

のMSSQLクエリ、2つの大きなquerys と3K +行スピードアップ、私は非常に巨大なデータベースを持っている

これは、ページをロードするために4全体秒かかりますが、それをスピードアップするには?

まず:

SELECT Description 
FROM ComputerIdentity JOIN 
    MakeModelIdentity 
    ON ComputerIdentity.MakeModelID = MakeModelIdentity.ID 
WHERE MakeModelIdentity.DeviceName='Laptop' AND 
     ComputerIdentity.Description LIKE '%uitleen%' AND 
     MakeModelIdentity.DeviceName = 'Laptop' AND 
     MakeModelIdentity.Model = 'Chromebook' 
ORDER BY ComputerIdentity.ID ASC 

第二:(私は表の別名を使用して、冗長WHERE条件を削除する "簡略化" しました)このクエリの

SELECT Inlognaam,VolledigeNaam FROM PersoneelEnLeerlingen 
+5

クラスタ化インデックスを持っていないあなたが選択している列の非クラスタ化インデックスを作成します。 (2)どのクエリが最も時間を費やしているかを判断し、それに重点を置く。 (3)テーブルにインデックスがあるかどうかの情報を提供します。 –

+0

EXPLAINを使用してどのテーブル・フィールドに時間を費やしてから、時間がかかるカラムにINDEXINGを適用してみてください。 – RJParikh

+0

また、 'ComputerIdentity.Description LIKE '%uitleen%''の最初の '%'を取り除くことができれば良いでしょう。 –

答えて

0

3K行はわずかですが、SQL Server Engineでは最適化のためのヘルプは必要ありません。ここに最適化の本からのいくつかの提案があります。まずの場合

SELECT ci.Description 
FROM ComputerIdentity ci JOIN 
    MakeModelIdentity mmi 
    ON ci.MakeModelID = mmi.ID 
WHERE mmi.DeviceName = 'Laptop' AND 
     mmi.Model = 'Chromebook' AND 
     ci.Description LIKE '%uitleen%' --reordered 
ORDER BY ci.ID ASC; 
  1. あなたのIDは整数
  2. 場合にはあなたが彼らがベストです主キー、作ることができ、ComputerIdentity.MakeModelIDとMakeModelIdentity.IDにクラスタ化インデックスを作成していることを確認します。説明、デバイス名、モデルにクラスタ化されていないインデックスを作成する
  3. '%'演算子を削除できればそれを試してみてください。前の '%'演算子は非常に高価です。これは '%uitleen%'が 'uitleen%'よりも遅いことを意味します。あなたが同様の演算子を削除することができれば、それは素晴らしいでしょう。秒

(1)3K行は巨大ではありません

+0

デバイスの名前がICT Uitleen ***なので、%演算子は削除できませんが、ICTを試みることができますUitleen% – Koen

+0

文字列が始まるアルファベットを知っている場合、他のすべての文字列。すべての単語を検索するのではなく、たとえばuで始まる単語を検索するなど、速度の向上を想像してみてください。 –

0

SELECT ci.Description 
FROM ComputerIdentity ci JOIN 
    MakeModelIdentity mmi 
    ON ci.MakeModelID = mmi.ID 
WHERE mmi.DeviceName = 'Laptop' AND 
     ci.Description LIKE '%uitleen%' AND 
     mmi.Model = 'Chromebook' 
ORDER BY ci.ID ASC; 

MakeModelIdentity(DeviceName, Model, ID)とのインデックスでクエリを高速化できます。

2番目のクエリは非常に簡単で、速度はデータのサイズにのみ依存します。

+0

インデックスの選択方法を教えていただけますか? –

関連する問題