2013-04-22 75 views
1

我在SQL Server Management Studio(2008)中執行一個SQL查詢,並在C#中使用SqlCommand(.net 3.5)執行相同的查詢。SQL查詢執行時間差在SSMS和SqlCommand

在Management Studio中查詢執行1.6分鐘即可完成。相同的查詢在C#中使用SqlCommand9分鐘

爲什麼SQL Server Management Studio & SqlCommand之間的巨大差異?

請有人幫我找到解決時間差異的解決方案。

在此先感謝。

查詢:

SELECT * INTO [target_table] 
FROM [source_table] WHERE Group_ID IN (1,2,3,4,5,6,7,8,9,10) 

大約100萬行。這將複製到target_table &表包含220列。

+0

嗨馬克,感謝您的快速評論。我在問題中添加了查詢。 – nRk 2013-04-22 17:05:52

+1

好吧,你需要**所有**欄?如果沒有 - **指定**你真的需要哪些!另外:有'Group_ID'上的索引嗎? – 2013-04-22 17:09:13

+0

是的,我需要所有列和group_id包括索引鍵(複合主鍵)。 – nRk 2013-04-22 17:19:57

回答

2

既然你問是什麼導致了這兩種環境之間的差異,我會試着回答這個問題,而不是如何更快地複製1,000,000條記錄這個更大的問題。

question and answer爲排除故障提供了一個很好的指導。如果您使用完全相同的命令或存儲過程調用並始終在結果中獲得此差異,則最可能的罪魁禍首是不同的SET選項。

嘗試使用分析器查看在SSMS中執行插入時設置了哪些SET選項。用你的C#例程做同樣的事情。比較它們並查看SSMS設置與ADO.NET不同的地方。

+0

謝謝Ann的回覆。我可以在URL詳細解釋:http://www.sommarskog.se/query-plan-mysteries.html – nRk 2013-04-23 09:13:58