2016-11-05 12 views
0

こんにちは、私は質問に取り組んでおり、すべてのことがうまくいきます。ただし、この戻りタイムアウトが2〜3回以上実行された場合を除いて、クエリに問題があります。ここで私を示唆して私のクエリSql Select Query Timeout

SELECT 
    Category_Feature_Mapping.Feature_ID, 
    Category_Feature_Mapping.Category_ID, 
    Option_Table.Option_ID, 
    Option_Table.Title, 
    Feature_Table.Title AS featuretitle, 
    Feature_Table.Type 
FROM 
    Category_Feature_Mapping 
    INNER JOIN Feature_Table 
     ON Category_Feature_Mapping.Feature_ID = Feature_Table.Feature_ID 
    INNER JOIN Option_Table 
     ON Feature_Table.Feature_ID = Option_Table.Feature_ID 
WHERE 
    Category_Feature_Mapping.Category_ID = @catid 
    AND [email protected] 
    AND Feature_Table.Feature_ID not in (SELECT 
              Feature_ID 
             FROM 
              Vendor_Value_Table 
             WHERE 
              [email protected])      
GROUP BY 
    Category_Feature_Mapping.Feature_ID, 
    Category_Feature_Mapping.Category_ID, 
    Option_Table.Option_ID, 
    Option_Table.Title, 
    Feature_Table.Title, 
    Feature_Table.Type 
+0

どのようにクエリを実行しますか? SSMS? C#? –

+0

実行するためにC#を使用 – user1870546

+0

接続タイムアウトのデフォルトは30秒です。 http://stackoverflow.com/questions/4308417/connection-timeout-for-sql-server –

答えて

0

は「追加しようとするように、「存在しない」で「NOT IN」を置き換えるしようとするかもしれないです;接続タイムアウト= 100 "あなたのタイムアウトのためにあなたに接続してください

+0

を置くことはできますか?データが50個以下の間に接続タイムアウトを増やすことは悪い習慣ではないと思いませんか? – user1870546

+0

1つのテーブルがいつでもlokingされている可能性があります。あなたがiseriesにいる場合はwrkobjlckを試してください – Esperento57

+0

私はテーブルが更新中ロックされていると思います。私はちょうどデータセットを選択しています – user1870546

0

は、パフォーマンスの問題により、この

AND not exists (
SELECT * FROM Vendor_Value_Table vvt 
WHERE Feature_Table.Feature_ID =vvt.Feature_ID and [email protected] 
)  
+0

問題はこの改訂版 – user1870546

+0

あなたのテーブルはIDでインデックスされていますか? – Esperento57

+0

はいそれらは正しくインデックスされています – user1870546