注意 - 数据库中有大约2-3百万条记录。
SELECT
route_date, stop_exception_code, unique_id_no,
customer_reference, stop_name, stop_comment,
branch_id, customer_no, stop_expected_pieces,
datetime_updated, updated_by, route_code
FROM
cops_reporting.distribution_stop_information distribution_stop_information
WHERE
(stop_exception_code <> 'null') AND
(datetime_updated >= { ts '2011-01-25 00:00:01' })
ORDER BY datetime_updated DESC
答案 0 :(得分:4)
如果您发布了此表中已有的索引,或者可能是查询执行计划,则会更容易了解。实际上,如果您创建包含stop_exception_code
和datetime_updated
的组合索引,我猜您可以提高性能。而且我不能保证这实际上会有效,但它可能值得一试。没有任何其他信息,我不能说更多......
答案 1 :(得分:1)
一些经验法则:
答案 2 :(得分:1)
stop_exception_code <> 'null'
请告诉我'null'不是数据库中的字符串。标准SQL将是
stop_exception_code IS NOT NULL
或
stop_exception_code is NULL
我不确定NULL stop_exception_code对你意味着什么。但如果它意味着“我不知道”,那么使用“我不知道”的特定值可能会让您的服务器在该列上使用索引,并且索引它可能无法用于NULL 。 (或者你可能已经通过使用字符串'null'来完成它。)
没有看到您的DDL,实际查询和执行计划,这就是我可以告诉您的全部内容。