0

我正在将 SQL 2005 用于应用程序。就我而言,通过不同的进程生成了许多请求,并将记录插入到一​​个表中。但是当我通过 sp_who2 活动过程检查数据库中运行的进程时,我发现插入被其他插入语句阻塞并导致进程变慢。有什么方法可以避免并发插入到一张表中的阻塞/死锁。下面是我的表的结构。

`CREATE TABLE [dbo].[Tbl_Meta_JS_Syn_Details](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [EID] [int] NULL,
    [Syn_Points_ID] [int] NULL,
    [Syn_ID] [int] NULL,
    [Syn_Word_ID] [int] NULL,
    [Created_Date_Time] [datetime] NULL CONSTRAINT [DF_Tbl_JS_Syn_Details_Created_Date_Time]  DEFAULT (getdate()),
 CONSTRAINT [PK_Tbl_JS_Syn_Details] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]`
4

1 回答 1

0

如果许多进程试图插入一张表,总会出现阻塞。但是,可以使用一些设置来限制时间量。

您使用的是什么隔离级别?默认? http://technet.microsoft.com/en-us/library/ms173763.aspx

您能否在此帖子中包含以下信息:

1 - 同时运行(插入)多少个进程?

2 - 您使用什么类型的磁盘子系统?RAID 5 或只是一个简单的磁盘。

3 - 您使用的是什么版本的 SQL Server?

4 - 数据库的增长选项是什么?

5 - 当前数据库有多满?

6 - 实例文件初始化是否开启?

给出上述问题的答案,您可以优化插入过程。

于 2013-09-27T12:33:19.160 回答