//最快的方法10000記錄23MS
publicstaticvoidinsert(){
//開時時間
Longbegin=newDate().getTime();
//sql前綴
Stringprefix="INSERTINTOtb_big_data(count,create_time,random)VALUES";
try{
//保存sql後綴
StringBuffersuffix=newStringBuffer();
//設置事務為非自動提交
conn.setAutoCommit(false);
//Statementst=conn.createStatement();
//比起st,pst會更好些
PreparedStatementpst=conn.prepareStatement("");
//外層循環,總提交事務信吵次數
for(inti=1;i<=100;i++){
皮啟//第次提交步長
for(intj=1;j<=10000;j++){
//構建sql後綴
suffix.append("("+j*i+",SYSDATE(),"+i*j
*Math.random()+"),");
}
//構建完整sql
Stringsql=prefix+suffix.substring(0,suffix.length()-1);
//添加執行sql
pst.addBatch(sql);
//執行操作
pst.executeBatch();
//提交事務
conn.commit();
//清空上一次添加的數據
suffix=newStringBuffer();
}
//頭等連接
燃坦如pst.close();
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
//結束時間
Longend=newDate().getTime();
//耗時
System.out.println("cast:"+(end-begin)/1000+"ms");
}
❷ 如何向資料庫快速的寫入百萬條數據
如何向資料庫快速的寫入百萬條數據
現在我的處理方式是讀取原資料庫表的所有數據,大毀或概有一罩余帶百萬條吧,然後放到一個數組裡面,循環向目標資料庫寫數據(兩個資料庫之物蘆間的數據遷移,表結構不同,我是寫的php腳本來查詢導入的),一開始速度還可以,但是現在幾乎一秒鍾一條了
❸ 如何向一個sql sever 資料庫表中插入大量數據
一次性插入大量數據,只能使用循環,
如:游標,while 循環語句
下面介紹While 循環插入數據,
SQL 代碼如下:
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT;
SET @max = 5000000;
SET @rc = 1;
INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
--以上函數取自Inside SQL Server 2005: T-SQL Query一書。
INSERT dbo.Sample SELECT n, RAND(CAST(NEWID() AS BINARY(16))) FROM Nums
❹ 如何往SQL資料庫中快速插入大量數據
有declare語句是可以的
比如創建了一個表a:
create table a
( aid int identity(1,1) not null Primary(Key),
adata int)
插入數據:
declare @n int
set @n = 0
while @n < 2000
begin
set @n = @n+1
insert into a(adata) values(@n)
end
自己改改就可以了