使用identity提高insert效率

2021-04-13 14:24:47 字數 1238 閱讀 7777

總結:http://topic.csdn.net/u/20071024/20/ed09a43f-2f94-4bf6-b9a0-5b8899539d4d.html

樓主:存在這樣一張表:create table t (int a, int b)

我現在要連續插入60036條記錄,我寫了乙個很簡單的指令碼如下:

declare @i int 

set @i = 500

while @i  <= 65535

begin

insert into t(a, b) values (@i, 1) 

set @i = @i + 1

end

go 這段指令碼如果在sql2000上執行,僅需幾十秒左右。如果在sql2005上執行,卻需要6分鐘。基本上慢了20倍。

請高手幫忙看看這是是麼原因啊?是否有需要優化的地方?

select

top65036a=

identity

(int

,500,1

) into

#t from

syscolumns a,syscolumns b

insert

t selecta,1

from

#tdrop

table#t

在機房查了一天終於找到原因了,應該是硬體配置問題。發現執行慢的機器都是用的hp proliant dl380/580 g5的伺服器,而dell poweredge 2850或者聯想的伺服器以及我們自己用的pc機執行都非常快啊。

在網上查了乙個網頁說是,hp dl 380伺服器可能要配乙個配件。

後來在hp支援中心查到要在hp伺服器上加乙個bbwc的磁碟讀寫快取,可以提高寫盤速度。預設的是唯讀快取,導致速度很慢。

這個帖子中說的情況和我一樣的,也是基本上一分鐘只能插入1萬條記錄。

把這個情況說一下,希望大家以後遇到這個問題,就不用像我這樣從軟體一直查到硬體了,忙了兩天了。

好像還有乙個問題就是,如果sql server的安裝目錄與資料目錄不在一張盤上,也會導致速度慢。

關於使用GUID和Identity做主鍵的一些思考

通常,給資料庫中的表都新增乙個 無意義 的主鍵,能夠大大地簡化程式的開發。這個主鍵用什麼型別呢?其實各種型別,只要大小不超過900位元組都可以,但我們最常面臨的兩種選擇是 guid uniqueidentifity 和identity int。ado.net 2.0高階程式設計 一書的 5.2.2 ...

提高eclipse使用效率

編輯 常用快捷鍵 格式化 的快捷鍵 ctrl shift f 格式化縮排的快捷鍵是 ctrl i,只能對選中的文字進行縮排 刪除一行的快捷鍵是 ctrl d 當前視窗最大化最小化切換 ctrl m 轉到最後進行修改的位置 ctrl q 快速查詢選中的字元 ctrl k 向下 ctrl shift k...

如何使用Android Studio提高App質量

android studio作為現在谷歌主推的android開發功能,除了提供了大量的功能幫助快速開發android 之外,在 質量控制方面也提供了很多任務具,這些工具都放在analyze選單下,主要有inspect code,code cleanup,analyze dependencies等功能...