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

tsql - Hiệu suất chèn hàng loạt

Tuy nhiên, có vẻ như việc xử lý ít mã hơn sẽ mang lại cho bạn hiệu suất cao hơn, sử dụng tùy chọn đầu tiên (liên hợp tất cả) là một ý tưởng tồi. Tất cả các câu lệnh chọn phải được phân tích cú pháp và thực thi trước khi dữ liệu được chèn vào bảng. Nó sẽ tiêu tốn rất nhiều bộ nhớ và có thể mất vĩnh viễn để hoàn thành ngay cả đối với một lượng dữ liệu khá nhỏ. Mặt khác, các câu lệnh chèn riêng biệt được thực thi "nhanh chóng".

Chạy một thử nghiệm đơn giản trong SSMS sẽ chứng minh điều này:tạo một bảng đơn giản với 4 trường và thử chèn 20k hàng. Giải pháp thứ hai sẽ thực thi trong vài giây, trong khi giải pháp đầu tiên ... bạn sẽ thấy :).

Một vấn đề khác là khi dữ liệu không đúng trong hàng som (ví dụ:kiểu không khớp), bạn sẽ nhận được lỗi như Conversion failed when converting the varchar value 'x' to data type int. , nhưng bạn sẽ không có dấu hiệu cho biết hàng nào bị lỗi - bạn phải tự mình tìm ra. Nhưng với các lần chèn riêng biệt, bạn sẽ biết chính xác lần chèn nào không thành công.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ứng dụng khách có địa chỉ IP không được phép truy cập vào cơ sở dữ liệu Azure SQL của máy chủ

  2. Nhanh chóng tìm ra ràng buộc khóa chính trong SQL Server 2005

  3. Cách thay thế một chuỗi trong cột bảng SQL Server

  4. Câu lệnh SQL select trong mệnh đề where

  5. làm thế nào để tạo mối quan hệ khóa ngoại trên dữ liệu phân tán vật lý?