0

我正在使用带有 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

如您所见,我正在根据相同的条件插入和删除同一组行。

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

谢谢。

4

1 回答 1

1

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

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

于 2012-08-20T21:03:02.260 回答