快速向表中插入100W條資料 sql

2022-03-12 01:17:32 字數 1828 閱讀 5594

set nocount on

;use

master;

go--

--判斷資料庫testdb是否存在,即建立資料庫

ifdb_id('

testdb

') is

null

create

database

testdb

gouse

testdb

go--

-判斷nums 表是否存在,存在即將其刪除

ifobject_id('

dbo.nums

') is

notnull

drop

table

dbo.nums;

go--

-重新建立表

create

table

dbo.nums(

id int

notnull

primary

key,

name

nvarchar(50) null

);declare

@max

asint,@rc

asint

;set

@max

=250000

;set

@rc=1;

insert

into dbo.nums(id,name) values(1,'張三'

);/*

模擬其執行過程

select id+1,'張三' from dbo.nums

insert into dbo.nums(id,name) select id+1,'張三' from dbo.nums

select id+2,'張三' from dbo.nums

insert into dbo.nums(id,name) select id+2,'張三' from dbo.nums

select id+4,'張三' from dbo.nums

insert into dbo.nums(id,name) select id+4,'張三' from dbo.nums

select * from dbo.nums

*/while

@rc*

2<=

@max

begin

insert

into dbo.nums(id,name) select id+

@rc,'張三'

from

dbo.nums

set@rc

=@rc*2

;end

print(@rc

)insert

into

dbo.nums(id,name)

select id+

@rc,'張三'

from dbo.nums where id+

@rc<=

@max

goselect

top100

*from nums where id notin(

select

top900 id from nums order

by id asc

) order

by id asc

select

*from (select

top100

*from

(select

top1000 id from nums order

by id asc

) aorder

by a.id desc

) b

order

by b.id asc

MySQL資料庫插入100w條資料要花多久時間?

1 多執行緒插入 單錶 2 多執行緒插入 多表 3 預處理sql 4 多值插入sql 5 事務 n條提交一次 問 為何對同乙個表的插入多執行緒會比單執行緒快?同一時間對乙個表的寫操作不應該是獨佔的嗎?答 在資料裡做插入操作的時候,整體時間的分配是這樣的 1 多鏈結耗時 30 2 多傳送query到伺...

MySQL資料庫插入 100w 條資料用了多久?

閱讀本文需要5分鐘 目錄1 多執行緒插入 單錶 2 多執行緒插入 多表 3 預處理sql 4 多值插入sql 5 事務 n條提交一次 多執行緒插入 單錶 問 為何對同乙個表的插入多執行緒會比單執行緒快?同一時間對乙個表的寫操作不應該是獨佔的嗎?答 在資料裡做插入操作的時候,整體時間的分配是這樣的 1...

SQL 快速向表中插入100萬條資料

setnocounton 02use master 03go 04 判斷資料庫testdb是否存在,即建立資料庫 05if db id testdb isnull 06createdatabasetestdb 07go 08use testdb 09go 10 判斷nums 表是否存在,存在即將其刪...