我正在使用带有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
可以看出,我是根据相同的条件插入和删除相同的行集。
有没有办法提高这个简单查询的性能?
感谢。
答案 0 :(得分:1)
如果要插入多行,则确实需要进行批量插入。调用此方法100,000次,每次传递一个ID,是一种线性处理思维模式。数据库用于设置操作。
构建一个需要插入和删除的临时ID表。然后通过加入该表中的ID进行批量插入,类似地进行批量删除。