![]() |
1
8
这个
对于您的查询,我在检查后得出的唯一结论是,它的创建者正在与性能作斗争。如果(这是我的假设)index CODE\u ZIP\u CODE\uix是TBL\u CODE\u ZIP(CODE)上的索引,那么查询将不会使用它,即使它被暗示要使用它。创建者可能没有意识到,使用LPAD(a.code,5,0)而不是a.code,索引就不能使用。ORDERBY子句获取驻留在内存中的中间结果集并对其进行排序。不需要索引。但是有了
当做, PS1:最好使用LPAD(tochar(a.code),5,'0')或tochar(a.code,'fm00009')。然后就可以清楚地知道您在用数据类型做什么了。 PS2:在LPAD上使用基于函数的索引(TO_CHAR(a.code),5,'0')或任何用于左填充zipcode的表达式,可能会对查询有所帮助。 |
![]() |
2
7
您应该能够添加ASC/DESC 之后 +0 |
![]() |
3
3
假设代码是一个VARCHAR2列,其中包含数字串(邮政编码)。问题是varchars按字符串而不是数字排序。将零添加到代码中会产生对数字的隐式强制转换,从而按数字排序:
如果存储的代码用零填充,那么就不需要强制转换,因为它们无论如何都会按数字顺序排序。
|
![]() |
4
1
有索引吗
可能最初的编写器有一个问题,orderby被优化为索引扫描,这导致查询运行较慢;所以他们加了+0来强制一个不同的访问路径并进行普通排序。 |
![]() |
5
0
首先很抱歉回答这个问题,因为这个问题已经很老了。但是+0提示数据库忽略此特定查询的索引(如果它位于.Code列上), 根据数据库的优化器模式,有时索引使检索速度变快,有时索引使检索速度变慢。
|
![]() |
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
![]() |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
![]() |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
![]() |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
![]() |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
![]() |
Anar · Oracle SQL用户定义函数 2 年前 |
![]() |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |