簡體   English   中英

Microsoft SQL 服務器的最大並發 INSERT 查詢數是多少?

[英]What is the maximum number of concurrent INSERT queries for Microsoft SQL Server?

如果多個不同的服務使用自己的連接同時向 SQL Server 發送對同一個表的 INSERT 查詢,那么 SQL Server 可以並行提交多少個 INSERT? 或者 SQL 服務器只能順序處理?

您最多可以擁有32,767 個用戶連接。 INSERT行為取決於Types of concurrency等因素。

插入操作的速度取決於表列(計數、類型)、它的索引、它的外鍵。 引擎可能需要檢查很多東西才能使數據庫保持一致的 state。

假設您只執行INSERT操作,而不執行此表上具有一列和主鍵的其他操作:

CREATE TABLE [dbo].[DemoUsers]
(
    [UserID] INT CONSTRAINT [PK_DemoUsers] PRIMARY KEY 
);

INSERT INTO [dbo].[DemoUsers] ([UserID])
VALUES (101)
      ,(102)
      ,(103);

然后在兩個單獨的查詢windows中執行如下語句:

BEGIN TRANSACTION;

    INSERT INTO [dbo].[DemoUsers] ([UserID])
    VALUES (107);

--COMMIT TRANSACTION;

BEGIN TRANSACTION;

INSERT INTO [dbo].[DemoUsers] ([UserID])
VALUES (108);

--COMMIT TRANSACTION;

這就像兩個用戶試圖插入一行需要一些時間(因為事務未提交):

在此處輸入圖像描述

您可以看到第一個事務的同一 PAGE 上的 IX 鎖沒有阻塞另一個事務頁面上的 IX:

在此處輸入圖像描述

理論上,插入不會相互阻塞,可以同時執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM