2017-07-18 50 views
-1

我有一个包含300列和超过1.2亿条记录的表。我想执行一个查询,如SQL查询 - 包含300列和1.2亿条记录的表

select * 
from tablename 
where code in ('aa','bb', ..) 
    and column1 in ('a11','a22',..) 

有大约50多列需要应用条件。

执行此查询需要两个多小时。有没有办法改善这一点?

enter image description here

Select查询语句是:

SELECT Number, COUNT(Code) AS Volume 
FROM TableNameTest 
WHERE LEN(Number) >= 5 
    AND Code IN ('851','852','853','870','871','872','002','004','006','013','017') 
    AND (ColumnName IN ('N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
     OR ColumnName2 IN ('N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
     OR ColumnName3 IN ('N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
     OR ColumnName4 IN ('N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName5 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName6 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName7 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName8 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName9 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName10 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName11 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName12 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName13 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName14 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName15 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName16 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName17 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName18 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName19 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName20 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName21 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName22 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName23 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName24 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName25 IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
) AND (ColumnName NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName2 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName3 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName4 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName5 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName6 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName7 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName8 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName9 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName10 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName11 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName12 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName13 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName14 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName15 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName16 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName17 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName18 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName19 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName20 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName21 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName22 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName23 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName24 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
OR ColumnName25 NOT IN (
'N179','R9002','R40.2240','R40.2241','R40.2242','R40.2243','R40.2244','R40.2245','R40.2246','R40.2247','R40.2248','R40.2249','R40.2230','R40.2231','R40.2232','R40.2233','R40.2234','R40.2235','R40.2236','R40.2237','R40.2238','R40.2239','N289','R410','R34','N178','J80') 
)) group by Number Order by Number 

`

+1

请发布架构和查询的解释。 –

+0

已添加有问题的执行计划 –

+0

执行计划中的查询看起来并不相同 - 它显然使用了聚合函数。另外,如果没有模式,我们只是猜测 - 表中是否有索引? –

回答

0

所以,你想其中至少一列存在这是集合和至少一个列上存在这是处理记录不在集合中并且提供一个代码。

我假设你不想仅仅评估一次这样的查询,所以重构或重新索引你的数据是合理的。

正常索引不起作用,索引和数据之间的跳转将使它们不可用。位图索引可以工作,因为在很多索引上的逻辑运算非常快。但是,只有当不存在太多不同的代码和列名称 - 值时?但Sql-Server不提供这些。

可能这些列存储索引会帮助,sqlserver提供。我承认,我对这些没有经验。

或者你可以切换到oracle或postgres。但只有经过广泛的测试!

相关问题