创建 Table DDL 导致 sql 服务器挂起
Create Table DDL causes sql server to hang
此 DDL 语句中是否有任何内容可能导致系统挂起并创建长 运行 查询?
-- Abort on any error
SET XACT_ABORT ON
GO
-- FUll isolation
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION
GO
CREATE TABLE ClientPayerCrosswalkMapping
(
id INT IDENTITY(1, 1) NOT NULL,
lbxid INT NOT NULL,
ClientPayerID NVARCHAR(80),
CONSTRAINT PK_ClientPayerCrosswalkMapping_ID PRIMARY KEY CLUSTERED (id),
CONSTRAINT UN_lbxid UNIQUE(lbxid),
CONSTRAINT FK_LockboxDocumentTracking FOREIGN KEY (lbxid)
REFERENCES LockboxDocumentTracking(lbxid)
);
GO
这是在 SQL Server 2005 上,当时系统负载适中。
这是新的 table 那么为什么系统会挂起,我唯一的怀疑是 table 有一个 CONSTRAINT
在不创建任何交易的情况下尝试此操作:
CREATE TABLE ClientPayerCrosswalkMapping
(
id INT IDENTITY(1, 1) NOT NULL,
lbxid INT NOT NULL,
ClientPayerID NVARCHAR(80),
CONSTRAINT PK_ClientPayerCrosswalkMapping_ID PRIMARY KEY CLUSTERED (id),
CONSTRAINT UN_lbxid UNIQUE(lbxid),
CONSTRAINT FK_LockboxDocumentTracking FOREIGN KEY (lbxid)
REFERENCES LockboxDocumentTracking(lbxid)
);
此 DDL 语句中是否有任何内容可能导致系统挂起并创建长 运行 查询?
-- Abort on any error
SET XACT_ABORT ON
GO
-- FUll isolation
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION
GO
CREATE TABLE ClientPayerCrosswalkMapping
(
id INT IDENTITY(1, 1) NOT NULL,
lbxid INT NOT NULL,
ClientPayerID NVARCHAR(80),
CONSTRAINT PK_ClientPayerCrosswalkMapping_ID PRIMARY KEY CLUSTERED (id),
CONSTRAINT UN_lbxid UNIQUE(lbxid),
CONSTRAINT FK_LockboxDocumentTracking FOREIGN KEY (lbxid)
REFERENCES LockboxDocumentTracking(lbxid)
);
GO
这是在 SQL Server 2005 上,当时系统负载适中。
这是新的 table 那么为什么系统会挂起,我唯一的怀疑是 table 有一个 CONSTRAINT
在不创建任何交易的情况下尝试此操作:
CREATE TABLE ClientPayerCrosswalkMapping
(
id INT IDENTITY(1, 1) NOT NULL,
lbxid INT NOT NULL,
ClientPayerID NVARCHAR(80),
CONSTRAINT PK_ClientPayerCrosswalkMapping_ID PRIMARY KEY CLUSTERED (id),
CONSTRAINT UN_lbxid UNIQUE(lbxid),
CONSTRAINT FK_LockboxDocumentTracking FOREIGN KEY (lbxid)
REFERENCES LockboxDocumentTracking(lbxid)
);