提高以下TSQL代码的性能

时间:2012-08-20 20:58:56

标签: tsql sybase

我正在使用带有TSQL的Sybase DB。

以下的TSQL代码片段非常简单,我需要执行100,000次(大型数据库),所以我真的希望以任何可能的方式提高它的性能:

BEGIN TRANSACTION
INSERT INTO
  DESTINATION_TABLE
SELECT
  COLUMNS
FROM
  SOURCE_TABLE
WHERE
  ORDER_ID = @orderId

DELETE FROM
  SOURCE_TABLE
WHERE
  ORDER_ID = @orderId
COMMIT TRANSACTION

可以看出,我是根据相同的条件插入和删除相同的行集。

有没有办法提高这个简单查询的性能?

感谢。

1 个答案:

答案 0 :(得分:1)

如果要插入多行,则确实需要进行批量插入。调用此方法100,000次,每次传递一个ID,是一种线性处理思维模式。数据库用于设置操作。

构建一个需要插入和删除的临时ID表。然后通过加入该表中的ID进行批量插入,类似地进行批量删除。