|
|
1
3
通过增加可能的项目数,您可能已经超过了为此类操作保留的内存中适合的项目数。 在查询运行时,尝试查看v$sql\u workarea\u active,看看是否是这种情况。或者查看v$sql_工作区以获取历史信息。它还将指示操作需要多少内存和/或临时空间。 如果是实际问题-如果可能,尝试增加pga_aggregate_target初始化参数。可用于最佳哈希/排序操作的内存量通常约为pga_aggregate_目标的5%。 Performance Tuning Guide 更多细节。 |
|
2
3
“我猜它是为每个唯一的x,y,概率值创建散列项,然后为每个唯一的x,y值求和概率”——几乎可以肯定是这样,因为这是查询所需要的。
如果优化器能够从统计数据中正确推断出x和y组合的近似唯一数量,那么很有可能在第二个查询输出的TempSpc列中显示完成查询所需的磁盘空间(如果有)(无列=无磁盘空间要求)。 http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_xplan.htm#i999234 如果临时空间使用率很高,那么正如CaptP所说,可能是时候进行一些内存调整了。在执行大量排序和聚合的数据库上,通常指定比SGA目标更高的PGA目标。 |
|
|
3
0
是你的 有没有可能设置为零?不太可能是散列GROUPBY本身导致了问题,可能是它之前或之后的问题。降低你的信用等级 优化器\u功能\u启用 到10.1.0.4并重新运行查询-您将看到,现在您将得到一个排序GROUPBY,该排序GROUPBY的性能应该总是优于哈希GROUPBY,除非您的PGA大小设置为手动,并且您的哈希工作区大小过小。 |
|
|
maddy · 如何根据oracle SQL中的某一列值进行排名 3 年前 |
|
|
kiric8494 · 显示以元音开头和结尾的城市名称 3 年前 |
|
|
Franz Biberkopf · Oracle:组合子查询和聚合函数 4 年前 |
|
|
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 4 年前 |
|
|
Arifullah · 如何从oracle中的列中删除特定的初始字符? 4 年前 |
|
|
Anar · Oracle SQL用户定义函数 4 年前 |
|
|
user1312312 · 如何为一组表编写通用触发器? 4 年前 |