【发布时间】:2015-04-10 01:18:30
【问题描述】:
我是 Sybase 的新手,我们在查询性能方面遇到了问题。希望有人能帮忙。
有问题的代码类似这样:
插入#table 选择 lt.id, rt.id FROM local_table lt 加入 remote_table rt ON rt.id = lt.id 在哪里 ...本地用户表和引用位于另一个数据库中的代理表的本地视图之间存在连接。代理表正在连接到另一台服务器。该查询基本上是连接本地和远程表并将结果插入到临时表中。
即使插入 0 条记录,查询也需要永远执行。
一些观察结果是:
- 如果我删除插入语句,SELECT 查询会执行得很快。
- 如果我将语句转换为 SELECT INTO,则查询运行良好。
- 如果查询一分为二,(从远程表插入 SELECT,然后删除本地表中不存在的额外记录)查询运行正常。
是否存在可以提高此类查询性能的配置设置,因此不会有代码更改?处理此问题的最佳方法是什么?
感谢您的帮助。非常感谢!
编辑:顺便说一句,在我们的跟踪中,它发出了这种等待:
等待 CTLIB 事件完成
【问题讨论】:
-
您是否有不想使用
select into的原因? -
嗨迈克尔,因为它会在整个数据库中的许多存储过程中引入代码更改!我想知道是否有一种不那么痛苦的方法可以用最少的努力来解决这个问题。感谢您的光临。
标签: sql database performance sybase