在我的項目(在JAVA)我必須從數據庫中選擇一些數據。如果數據不存在,我將它插入並再次選擇它。我做了兩個測試:MSSQL選擇填充比空錶快
1.從空表中選擇SELECT INSERT-SELECT數據(150 000行)。
2.從表中填充5千個垃圾(未使用)行的SELECT-INSERT-SELECT數據(150 000行)。
而在結果中,我看到第二個案例速度提高了15%到25%。
有人可以解釋爲什麼嗎?
在我的項目(在JAVA)我必須從數據庫中選擇一些數據。如果數據不存在,我將它插入並再次選擇它。我做了兩個測試:MSSQL選擇填充比空錶快
1.從空表中選擇SELECT INSERT-SELECT數據(150 000行)。
2.從表中填充5千個垃圾(未使用)行的SELECT-INSERT-SELECT數據(150 000行)。
而在結果中,我看到第二個案例速度提高了15%到25%。
有人可以解釋爲什麼嗎?
你有多少次運行這個測試?
我假設1)由於表增長可能會變慢。
可以監控thsi使用使用註釋sp_spaceused
看到 http://www.mssqltips.com/sqlservertip/2794/report-to-capture-table-growth-statistics-for-sql-server/
我跑了這些測試5次。並感謝您的鏈接。 – zdolniacha
我認爲這是磁盤緩存。嘗試執行'DBCC DROPCLEANBUFFERS; DBCC FREEPROCCACHE;'並再次檢查您的測量結果。 – Devart