Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao máy chủ SQL chèn quá chậm?

Bạn thực hiện mỗi lần chèn bên trong giao dịch của chính nó.

Bắt đầu và cam kết giao dịch là rất đắt trong SQL Server .

Gộp mọi thứ vào một khối giao dịch duy nhất:

declare @i int
set @i = 0
set nocount on
BEGIN TRANSACTION
while @i < 2000
begin
insert into testdb(testcolumn)
values (1)
set @i = @i + 1
end
COMMIT

Để tạo dữ liệu mẫu, bạn có thể sử dụng CTE đệ quy :

WITH    q (num) AS
        (
        SELECT  1
        UNION ALL
        SELECT  num + 1
        FROM    q
        WHERE   num < 2000
        )
INSERT
INTO    testdb(testcolumn)
SELECT  1
FROM    q
OPTION (MAXRECURSION 0)

, sẽ nhanh hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại Kiểu dữ liệu cơ sở từ SQL _ Giá trị biến thể trong SQL Server

  2. SQL:phân tích cú pháp họ, tên đệm và họ từ trường tên đầy đủ

  3. Làm thế nào để chuyển đổi varchar thành datetime trong T-SQL?

  4. Làm thế nào để tìm mức giao dịch hiện tại?

  5. So sánh ngày giờ của SQL Server ở các định dạng khác nhau