【发布时间】:2018-08-03 05:46:50
【问题描述】:
我有数十亿条记录的表,表结构如下:
ID NUMBER PRIMARY KEY,
MY_SEARCH_COLUMN NUMBER,
MY_SEARCH_COLUMN 的数值最长可达 15 位。
我想要的是,如果任何特定记录匹配,我将只需要获得匹配的值,
即: 如果我输入 WHERE MY_SEARCH_COLUMN = 123454321 并且表的值是 123454321 那么应该只返回这个。
但如果不匹配确切的值,我将不得不从表中获取接下来的 10 个值。
即:如果我输入 WHERE MY_SEARCH_COLUMN = 123454321 并且列没有值 123454321 那么它应该从表中返回 10 个大于 123454321 的值
这两种情况都应该包含在单个 SQL 查询中,我必须牢记查询的性能。我已经在MY_SEARCH_COLUMN 列上创建了索引,因此欢迎提出其他建议以提高性能。
【问题讨论】:
标签: sql oracle sql-tuning