2017-10-07 14 views
1

私はVARBINARY(MAX)列に小さなファイル(20Kから2MBの間)を保存します。私の開発環境では、ローカル(私の開発PC上)ですが、選択には20msかかります。非常に遅いVARBINARY(MAX)を選択します

UPDATE [DB_9FB6F6_smartplates].[dbo].[ImageLibrary] 
SET filetype = 'jpg' 
WHERE filetype = 'exiting' 

SELECT BinaryData 
FROM [ImageLibrary] 
WHERE Id = 1056 

は(Idが主キーである場合は)

私は(cheapish)ホスティング会社に私のコードをアップロードして、同じクエリを実行し、それはそれは13秒かかります。

私たちは両方ともSQL Server 2016を実行しています。実際のアクセス権(saなどはありません)をデータベースに提供するだけなので、プロファイルを作成する権限はありませんが、コードはその選択。

なぜなら、同じクエリが環境に非常に長くかかる理由を知ることができますか? DBは環境からバックアップされ、私の上に復元されることに注意してください...それで、まったく同じデータベースです。

他のすべてのクエリは高速です。遅いのはVARCHAR(MAX)での選択です。私はそれを診断する方法がわからないし、彼らのサポートを照会する。

答えて

1

私はあなたがこれを解決しようとすることができる2つの事を考えることができます。

ワン:

CREATE NONCLUSTERED INDEX IX_ImageLibrary_FileType ON [DB_9FB6F6_smartplates].[dbo].[ImageLibrary] (filetype) 

私はスロークエリで数えるあなたの更新ステートメントを、スピードアップします。

2つ: 運用データベースでSQL Server Management Studioにアクセスできますか? (ローカルなものではない)。両方のクエリの実行計画をリクエストして、それがあなたに提案を与えるかどうかを確認してください。 また、主キーの断片化を確認してください(Idの列にあると思います)

関連する問題