TSQL 自增鍵和索引對錶的插入效率測試

2021-09-06 13:28:33 字數 712 閱讀 9375

問題描述:

資料庫操作中,需要對錶頻繁插入資料,但發現插入效率不高。

解決思路:

將資料快取在伺服器上,積攢到一定條數後批處理傳送到資料庫,在插入時考慮併發和索引對插入效率的影響。

測試結果:

有自增主鍵     有自增無索引     無自增無索引

單錶單執行緒    24113/s       24448/s             24752/s

單錶5執行緒     7611/s        104865/s            104340/s

單錶10執行緒    5756/s       110717/s       105719/s

10表10執行緒    109878/s      109878/s       113199/s

結論:1. 在對有索引的表上應減少併發以提高插入效率。

2. 對無索引的表,適當併發能提高插入效率,過高或過低的併發會導致插入效率低下。

3. 自增健對插入影響較小可忽略。

4. 可以考慮將表拆分來提高插入效率。

5. 減少或避免在插入頻繁但查詢較少的表上建立索引。

其他相關建議:

1. 開啟磁碟快取能提高磁碟處理能力,從而提高插入效率,降低磁碟佇列。

2. 修改資料庫檔案自動增長的增量,避免資料庫檔案頻繁增長。

理論上 sql server 自增列存在乙個每秒最大生成數,但該數很難使用當前硬體達到

T SQL 插入並返回自增ID

sql server 2000中,有三個比較類似的功能 他們分別是 scope identity ident current 和 identity,它們都返回插入到 identity 列中的值。ident current 返回為任何會話和任何作用域中的特定表最後生成的標識值。ident curren...

T SQL 插入並返回自增ID

sql server 2000中,有三個比較類似的功能 他們分別是 scope identity ident current 和 identity,它們都返回插入到 identity 列中的值。ident current 返回為任何會話和任何作用域中的特定表最後生成的標識值。ident curren...

T SQL 插入並返回自增ID

sql server 2000中,有三個比較類似的功能 他們分別是 scope identity ident current 和 identity,它們都返回插入到 identity 列中的值。ident current 返回為任何會話和任何作用域中的特定表最後生成的標識值。ident curren...