我在我的应用程序中使用 Sybase 15,存在与嵌套连接相关的性能问题。我有存储过程,它从 2 个表中选择 2 列,并比较这 2 个表之间超过 10 列的相等性。但是当我经营这个商店时。过程,结果需要 40 分钟。我在我的程序顶部添加了“set merge-join off”语句,然后结果需要 22 秒。但我还需要一个没有它的解决方案。我之前使用的是 sybase 12.5,没有任何类似的问题,我的过程需要 3 分钟才能得到结果。
我用 sp_configure 比较了 15 和 12.5 之间的服务器配置,sybase15 服务器配置(I/O 和内存配置设置)比 sybase12.5 服务器大。
信息:sybase15所在pc的系统资源真好。
最佳答案
和其他人一样,我有同情心,而不是真正的答案!我们看到一个问题,即 ASE 15 查询规划器大大低估了表扫描的成本,并同样高估了使用聚集索引的成本。这导致合并连接成为建议的计划。禁用合并联接或设置 allrows_oltp optgoal 有时 会产生更好的查询计划。估计的成本仍然相差甚远,但通过从表中删除一个选项,查询规划器可能会找到一个好的解决方案 - 尽管通过错误的分析。
ASE 15 文档说它有一组更清晰的算法,而 ASE 12 规划器有一堆特殊情况。也许一个特殊情况说“如果你在连接中有聚簇索引列,它将比表扫描更快”并不是一个坏主意......:(
关于performance - Sybase 15 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551664/