我有以下查询,它扫描大表,不幸的是,我没有索引这一列,但我经常不得不运行查询这一列。有没有办法优化这个查询。
select * from match with (nolock) where CURRENT_STATE in ('ACT','REJ')
此表中的总记录为30280527条
如果我使用top子句而不是选择所有记录,会提高性能吗?
我有两个表: table1和table2,这两个表都有一列ID。我想在table1中创建一列,如果table1中的ID在table2中,则显示'Y‘,如果不在,则显示'N’。
目前,我使用的是:
Select id, case when id in (table2) then 'Y' else 'N' end as in_table2
from table1
但是,由于这两个表都非常大,所以查询会耗费很长时间。有没有更有效的方法来做到这一点?
谢谢
我有一个表,其中有四列,每列包含一封电子邮件。我希望在不执行特定列查询的情况下,检查数据是否存在于这四列中的任何一列中
SELECT * FROM 'table_name' WHERE 'column_1'='data';
SELECT * FROM 'table_name' WHERE 'column_2'='data';
SELECT * FROM 'table_name' WHERE 'column_3'='data';
SELECT * FRO
我有一个相当大的表,其中一列是日期列。我执行的查询如下。
select max(date) from tbl where date < to_date('10/01/2010','MM/DD/YYYY')
也就是说,我希望找到最接近且小于特定日期值的单元格值。这需要相当长的时间,因为大表上的最大值。有没有更快的方法来做这件事?也许使用LAST_VALUE?