0

我正在分析一个将临时表作为参数的插入查询,并看到插入的每个项目都计入 SQL Server Profiler 中的 SP:Starting 和 SP:Completed 事件。

这大致是我正在做的查询:

DECLARE @temptable TABLE (id INT)
INSERT INTO @temptable (id) VALUES (0), (1), (2), ..... (500)
INSERT INTO TableOfInts (id)
SELECT id FROM @temptable

当我查看我的 SQL Profiler 时,对于从临时表插入到真实表中的每个值,我都有一个语句:

EventClass   TextData
SP:Starting  INSERT INTO TableOfInts (id)....
SP:Completed INSERT INTO TableOfInts (id)....
SP:Starting  INSERT INTO TableOfInts (id)....
SP:Completed INSERT INTO TableOfInts (id)....
SP:Starting  INSERT INTO TableOfInts (id)....
SP:Completed INSERT INTO TableOfInts (id)....

500 个 SP:Starting 和 SP:Completed 条目

我想知道这对于这种类型的查询是否正常,或者我在某处做错了什么导致一堆无关的查询运行。

4

1 回答 1

0

我想通了,我的表有一个默认列,它调用 CLR 函数来自动生成它。每个插入都将是对标量函数的调用,从而导致每个都显示一个 SP:Starting 和 SP:Completed 事件。

于 2018-02-22T16:30:29.117 回答