我一次向表中插入大約400行(SQL Server 2008)。我試過UNION ALL,但是這大大減緩了事情的速度。我定居在下面的查詢:如何加速多行插入到SQL服務器?
INSERT INTO table VALUES (a, b,...),(c, d,...),...(x,y,...);
當我通過ODBC使這個查詢大約需要400毫秒(我使用C++和時間一次調用SQLExecDirect的去ODBC32.DLL)。但是,當我在MS SQL Server Management Studio中運行由Getdate()包裝的查詢時:
SELECT Getdate()
INSERT INTO ...
SELECT Getdate()
它需要~10ms。爲了比較,在同一臺機器上,MySQL中的相同查詢需要大約20ms。
- SELECT Getdata()是一種確定事務處理時間的可靠方法嗎?
- 爲什麼MS SQL Server Management Studio如此之快?
- 我該怎麼做才能改善性能?任何ODBC的替代品?直接連接到SQL服務器?
SSMS查詢看起來很快的原因是因爲我多次發送完全相同的查詢。只需更改原始查詢中的一個字母,即可再次運行「SQL Server分析和編譯」,並且執行速度降至非常接近ODBC的速度。 – ihamer 2010-09-30 17:05:46