は、私は、クエリを持っている:チューン高価なクエリ
SELECT MIN(Numero)
FROM view_OperatoriCpuLiberi
WHERE IDCpu = '9e2da792-be47-e311-aea8-b4b52fb677e0'
AND Numero > 100 AND IDGruppo IN
(
SELECT AssociazioniCampo.IDOggetto AS IDGruppiAutorizzati
FROM Anag.ListeAssociazioni
INNER JOIN Anag.AssociazioniCampo ON ListeAssociazioni.IDLista = AssociazioniCampo.IDLista
INNER JOIN Campo.Oggetti ON AssociazioniCampo.IDOggetto = Oggetti.IDOggetto
WHERE ListeAssociazioni.IDTipoMacroOggetto = 5
AND ListeAssociazioni.IDTipoAssociatoCampo = 74
AND Deleted = 0
AND IDMacroOggetto = 'c3f2c542-a195-11e0-a2e3-000c2962b9f0'
)
「view_OperatoriCpuLiberiは」81981行と(括弧の間)ネストされたクエリ861行が含まれています。クエリには2秒以上かかりました。ネストされたクエリを削除してから 'IDGruppo IN'命令を削除すると、非常に高速になりました。私は何ができますか?
あなたはどのデータベースを使用していますか?そしてあなたはあなたのテーブル構造とそのテーブル上の任意のインデックスを投稿できますか?ありがとう。 – Nick
は副選択でなければなりません。それは普通の結合として書き直すことができます... –
あなたのDBに依存しているように感じますが、古いバージョンのSQLではWhere句のサブクエリでかなり大きなパフォーマンスが得られたことを思い出しています。サブクエリをFROM句に移動してから、Marc Bの提案に従ってジョインしてみてください。 –