我是Informatica开发人员。
我在共享应用程序数据库(SQL Server)中有一个维度表。 我在表上有4个键,并且在此表上有一个唯一的非聚集索引。 在informatica目标中,我们将4列设置为与键列相同的列。 我们使用相同的4个键在此维度表上进行查找,以标记其为插入还是更新。
我在informatica中有一个计划,该作业每天以不同的间隔运行6次。对于所有早晨的工作量来说,工作运行得如此之快,更新的吞吐量约为1000 rec / sec。
但是仅对于晚上的负载而言,对于此特定表,吞吐量自12月15日开始每秒减少,这是从上个月开始的。
我们希望,可能还有其他东西可以锁定该表,或者在数据库端。因此,联系了DBA,他们启用了此特定表上的跟踪功能,但是他们无法识别其他任何内容。如果有人能以任何方式或我可能看到的任何暗示帮助我,那真的很棒。
informatica服务器也是共享服务器。但是在存在性能问题的此时,SQL Server和Informatica服务器均已轻载。如果我错过了任何事情,请告诉我,我可以尝试提供其他信息。该表有94列,该表的定义如下,其中一个SurrogateKey,B,C,D和E为键:
CREATE TABLE TEMP(
A [int] IDENTITY(1,1) NOT NULL,
B [varchar](8) NOT NULL,
C [varchar](11) NOT NULL,
D [varchar](3) NOT NULL,
E [varchar](2) NOT NULL,
F [varchar](1) NULL,
.
.
.
CP [char](1) NULL,
CONSTRAINT [PK_T_TEMP] PRIMARY KEY CLUSTERED
(
[A] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY],
CONSTRAINT [IX_T_TEMP] UNIQUE NONCLUSTERED
(
[A] ASC,
[B] ASC,
[C] ASC,
[D] ASC,
[E] 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个键进行更新。因此,更新语句如下所示。
UPDATE TEMP
SET
F=?,
G=?,
H=?,
..
..
..
CP=?
WHERE B=? AND C=? AND D=? AND E=?;