相关疑难解决方法(0)

where子句的顺序在SQL中是否重要?

假设我有一个名为PEOPLE3列的表ID, LastName, FirstName,这些列都没有被索引.
LastName更独特,FirstName更不独特.

如果我做2次搜索:

select * from PEOPLE where FirstName="F" and LastName="L" 
select * from PEOPLE where LastName="L" and FirstName="F"
Run Code Online (Sandbox Code Playgroud)

我的信念是第二个更快,因为更独特的标准(LastName)在where条款中排在第一位,记录将更有效地消除.我不认为优化器足够聪明,可以优化第一个sql.

我的理解是否正确?

sql performance where-clause

113
推荐指数
3
解决办法
6万
查看次数

SQL问题:WHERE子句的顺序是否有所不同?

从性能的角度来看,我的SQL WHERE语句的顺序是否有所不同?

例如

SELECT ... FROM ...
WHERE a > 1
AND b < 2
Run Code Online (Sandbox Code Playgroud)

会比这更快/更慢吗?

SELECT ... FROM ...
WHERE b < 2
AND a > 1
Run Code Online (Sandbox Code Playgroud)

让我们假设我事先知道a > 1会缩小结果集.

另外,如果我按照WHERE语句的顺序加入两个或更多表,这有关系吗?

sql performance

19
推荐指数
4
解决办法
1万
查看次数

Sql - WHERE条件的显式顺序?

有没有办法明确说明发生WHERE条件的顺序?我意识到查询优化器将查看WHERE子句的所有部分,以确定满足查询的最有效方法,如以下答案中所述:

where子句的顺序在SQL中是否重要

SQL - WHERE条件的顺序是否重要?

但是,有没有办法检查其他条件会依赖的条件?这些线程的答案之一涉及到我所追求的,但没有提供解决方案:

select *
from INFORMATION_SCHEMA.TABLES
where ISNUMERIC(table_name) = 1 and CAST(table_name as int) <> 0
Run Code Online (Sandbox Code Playgroud)

这可能会失败,因为可以在确定table_name字段是否为数字之前评估CAST(因此会为无效转换引发错误).

当然必须有办法实现这一目标吗?

sql

6
推荐指数
1
解决办法
305
查看次数

SQL连接条件A = B或反向B = A?

我不认为它对数据库有任何影响,但在连接表时,您更喜欢编写条件:

SELECT
    ...
    FROM AAA
        INNER JOIN BBB ON AAA.ID=BBB.ID
    WHERE ...
Run Code Online (Sandbox Code Playgroud)

要么

SELECT
    ...
    FROM AAA
        INNER JOIN BBB ON BBB.ID=AAA.ID
    WHERE ...
Run Code Online (Sandbox Code Playgroud)

sql join

2
推荐指数
3
解决办法
3727
查看次数

Oracle SQL语句中的条件顺序是否重要?

我的一些同事根据他们对数据库的理解和索引的存在,提出了对Oracle SQL语句中的条件进行排序的要点.

这个答案驳回了序列的重要性,而这个答案有一个不同意PROLOG的评论.

好的,所以ANSI SQL确实是声明性的,序列是无关紧要的.Oracle 11怎么样?

sql oracle11g

2
推荐指数
1
解决办法
393
查看次数

标签 统计

sql ×5

performance ×2

join ×1

oracle11g ×1

where-clause ×1