當前位置:首頁 » 編程語言 » sql插入10w條記錄
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql插入10w條記錄

發布時間: 2022-10-18 11:33:27

❶ T-sql語句怎麼讓一個ID+1循環插入10W條數據呢

WITHcteAS
(SELECT1ASid
UNIONALL
SELECTid+1FROMcteWHEREid<100000)

SELECT*FROMcteOPTION(MAXRECURSION0)

❷ 怎樣用一條sql語句向資料庫中插入10000條記錄

只能用循環了,以下是php語法
for($i=0;$i<10001;$i++){
INSERT INTO TABLE();//這里式sql語句
}

❸ 像資料庫一次性插入10w條數據,怎麼插入效率快啊!

1、導入數據,數據結構一樣可直接導入,稍微不同或需要處理,可以用一個中間程序2、資料庫腳本數據導入3、如果是執行代碼導入,神馬都是浮雲,只能做到優化開一次資料庫連接connection對象而Statement對象,創建一個,插入一個,順便釋放Statement對象的資源最後關閉connection對象用事務一次性提交,汗一個10W條。

❹ Oracle中如何對A表插入10W條數據進行測試的SQL語句,A表中有ID,NAME,AGE屬性,謝謝各位大神

你這手也太新了吧
下載一個toad,用這個工具之間將excel中的數據導入到資料庫即可

❺ 用t _sql 語句去批處理插入十萬條數據到資料庫表裡,用哪些方法能夠更快呢

可以用子查詢。

如果要插入的數據來自查詢結果可以用
insert 表名(欄位列表) select查詢

如果要插入的是原始數據,可以用union
insert 表名(欄位1名,欄位2名,……,欄位n名)
select 欄位1值1,欄位2值1,……,欄位n值1
union 欄位1值2,欄位2值2,……,欄位n值2
……
union 欄位1值m,欄位2值m,……,欄位n值m

❻ 有一個系統,每天要向sql server伺服器插入10幾萬條記錄,在不考慮查詢的情況下怎麼提高效率

建分區表的話, 要看你有幾個磁碟.
如果只有一個磁碟的, 分區來分區去, 最後數據還是在 一個磁碟上面,

如果你有多個磁碟的.
那麼可以根據那個 自增 ID , 設置一個 計算列
比如你有5個 磁碟, 那麼 那個計算列 是 自增 ID % 5
那麼 當 計算列的數值 = 1 , 數據被存儲到 磁碟1上面
那麼 當 計算列的數值 = 2 , 數據被存儲到 磁碟2上面
那麼 當 計算列的數值 = 3 , 數據被存儲到 磁碟3上面
那麼 當 計算列的數值 = 4 , 數據被存儲到 磁碟4上面
那麼 當 計算列的數值 = 0 , 數據被存儲到 磁碟5上面

這種情況,是針對 你插入數據量很大, 瓶頸發生在 磁碟 IO 處理的情況下。
可以提升一定的 插入的性能。

但是看你的那個描述
當記錄數據到達1000w之後插入記錄就變得很慢
那麼我懷疑,可能是 索引處理 花費的時間比較多了
因為你插入一行數據
要更新 表的數據, 同時還有 更新索引的數據
表的數據,更新起來很簡單。 索引的更新,需要做一定的計算。
即時你的表,沒有任何的索引,但是那個 自增主鍵, 也是自動要創建索引的。

❼ sql server 執行循環插入100萬條數據,當插入10萬條左右時內存溢出了

CREATE TABLE #ta(A1 int,ID bigint NOT NULL IDENTITY(1,1));go
DECLARE @max AS INT, @rc AS INT;
SET @max = 1000000;
SET @rc = 1;
INSERT INTO #ta(A1) select 1
WHILE @rc < ceiling(log(@max) / log(2))
BEGIN
INSERT INTO #ta(A1) SELECT 1 FROM #ta;
SET @rc = @rc + 1 ;
END
select @max = @max - @@IDENTITY

INSERT INTO #ta(A1)
SELECT 1 FROM #ta where id <= @max

insert into book3
select 'a'+ltrim(str(id)),'b'+ltrim(str(id)),'c'+ltrim(str(id)),'d'+ltrim(str(id)),'e'+ltrim(str(id)),'2-12-2012'
from #ta

❽ 求SQL 語句 一句話,建表並插入十萬條數據

insert into b select * from 另一張表

這樣操作之下,建立了一個新的表b,新表b的內容完全來自與「另一張表」

可是這個前提是「另一張表」要有一萬條記錄。

不知道你能不能理解,不能理解在查詢分析器上運行一下就知道了/
其實並不是很難的

❾ 用t _sql 語句去批處理插入十萬條數據到資料庫表裡,用哪些方法能夠更快呢

可以用子查詢。
如果要插入的數據來自查詢結果可以用
insert
表名(欄位列表)
select查詢
如果要插入的是原始數據,可以用union
insert
表名(欄位1名,欄位2名,……,欄位n名)
select
欄位1值1,欄位2值1,……,欄位n值1
union
欄位1值2,欄位2值2,……,欄位n值2
……
union
欄位1值m,欄位2值m,……,欄位n值m

❿ 像資料庫一次性插入10w條數據,怎麼插入效率快啊!

  1. 在SQL Server 中插入一條數據使用Insert語句,但是如果想要批量插入一堆數據的話,循環使用Insert不僅效率低,而且會導致SQL一系統性能問題

  2. 下面介紹SQL Server支持的兩種批量數據插入方法:Bulk和表值參數(Table-Valued Parameters)。

  3. bulk方法主要思想是通過在客戶端把數據都緩存在Table中,然後利用SqlBulkCopy一次性把Table中的數據插入到資料庫

  4. 代碼如下:

  5. public static void BulkToDB(DataTable dt)
    {
    SqlConnection sqlConn = new SqlConnection(
    ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);
    SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
    bulkCopy.DestinationTableName = "BulkTestTable";
    bulkCopy.BatchSize = dt.Rows.Count;
    try
    {
    sqlConn.Open();
    if (dt != null && dt.Rows.Count != 0)
    bulkCopy.WriteToServer(dt);
    }
    catch (Exception ex)
    {
    throw ex;
    }
    finally
    {
    sqlConn.Close();
    if (bulkCopy != null)
    bulkCopy.Close();
    }
    }
    public static DataTable GetTableSchema()
    {
    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[]{
    new DataColumn("Id",typeof(int)),
    new DataColumn("UserName",typeof(string)),
    new DataColumn("Pwd",typeof(string))});

    return dt;
    }
    static void Main(string[] args)
    {
    Stopwatch sw = new Stopwatch();
    for (int multiply = 0; multiply < 10; multiply++)
    {
    DataTable dt = Bulk.GetTableSchema();
    for (int count = multiply * 100000; count < (multiply + 1) * 100000; count++)
    {
    DataRow r = dt.NewRow();
    r[0] = count;
    r[1] = string.Format("User-{0}", count * multiply);
    r[2] = string.Format("Pwd-{0}", count * multiply);
    dt.Rows.Add(r);
    }
    sw.Start();
    Bulk.BulkToDB(dt);
    sw.Stop();
    Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds));
    }
    Console.ReadLine();
    }