我与Sybase 15在我的应用程序工作,没有与嵌套的联接相关的性能问题。我已存储的程序,其选择从2和表2倍的列和该2个表之间比较在10列的等式。但是,当我运行这个STOR。 PROC中,结果需要40分钟。我补充说:“设置合并连接关闭”语句来我PROC的顶部,那么结果需要22秒。但我需要无多了一个解决方案。我使用Sybase 12.5之前,也没有像任何问题,我PROC是需要3分钟的结果。

用15和12.5和sybase15服务器配置(I / O和存储器的配置设置)之间的sp_configure

我比较服务器配置比SYBASE12.5服务器更大。

信息:sybase15位于电脑的系统资源是非常好的

有帮助吗?

解决方案

我刚刚工作了14小时工作的调试,从上周末的Sybase 15移植出现严重的性能问题。

在查询优化器一直在(我们)一些非常奇怪的决定。

以一个例子,

select a, b, c from table1, table2, table3 where ...

create table #temp (col1 int, col2 int, ... etc)

insert #temp
select a, b, c from table1, table2, table3 where ...

我们有良好的时间第一次运行时,不能让它做出正确的决定在第二个实例,尽管进行了广泛改造。我们甚至采取了查询分割成临时表,但仍然有不寻常的结果。

在结束时,我们使出SET FORCEPLAN ON某些查询 - 此为10小时具有上线我们的数据库管理员和Sybase的后。该解决方案来自从Sybase工程师的应用程序开发者也,而不是任何意见。

所以,给自己节省一些时间,走这条路是我的建议。

其他提示

同为别人,我有怜悯,而不是一个真正的答案!我们看到在ASE 15的查询规划大规模低估表扫描的成本,同样高估使用聚集索引的成本的问题。这导致合并连接是建议的计划。禁用合并连接或设置allrows_oltp optgoal的有时的得到更好的查询计划。估计成本仍然遥远,但通过采取一个选项关闭表查询规划可能会找到一个很好的解决方案 - 尽管通过错误的分析

15 ASE文件说,它有一个更清洁的一套算法,而ASE 12规划者有一堆的特殊情况。或许说,一个特殊的情况下,“如果你在加入它会比表扫描更快的聚集索引列”不会是一个坏主意...:(

的Sybase有效重写15版本的查询引擎,这意味着跑超快上12.x的查询可以运行在较新的版本要慢得多,并且反之亦然。调试这个问题的唯一方法是将12.x的查询计划比作15查询计划,看看什么东西正在做不同的。

每个人都关心这个问题应该阅读本文档:

的http:// WWW。 sybase.com/files/White_Papers/ASE15-Optimizer-Best-Practices-v1-051209-wp.pdf

它有大约迁移从Sybase 12到Sybase 15坦率警告。

Quoteth:

  

...不要把ASE 15的“刚   另一版本”。正如我们将   要说的是,你可以简单地   转型升级,在点你的应用程序   升级后的服务器,深度和   在一个最变化的广度   一个数据库,查询的基本领域   执行力,就必须更加集中   测试方案。本文意   为您提供清晰的事实   和最佳实践,以减少这种   努力尽可能实际   可能的。

它接着谈论新ASE 15查询优化,VIS-A-VIS OLTP查询和DSS(决策支持系统)的查询。

然而的,有好消息:2009年3月时,Sybase 15.0.3推出了兼容模式。请参阅以下文档:

http://www.sybase.com/detail?id=1063556

在此模式下,你不必分析查询他们是否适合OLTP或DSS配置文件来决定的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top