Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何处理两个数据量巨大的表?_Sql_Sql Server - Fatal编程技术网

Sql 如何处理两个数据量巨大的表?

Sql 如何处理两个数据量巨大的表?,sql,sql-server,Sql,Sql Server,我面临着一个严重的问题,一个表有2亿的数据,另一个表有服务类型的数据,这与巨大的数据表连接在一起 我已经创建了聚集索引、主键索引和非聚集覆盖索引。我已经将Varchar列修改为Char以用于空间,我已经使用了所有筛选条件 我的桌子看起来像: (2 crores data) CREATE TABLEA ( ApplicationNO Varchar(25)PK, Service_type VARCHAR(10), service_id VARCHAR(10), ISActive Char(1))

我面临着一个严重的问题,一个表有2亿的数据,另一个表有服务类型的数据,这与巨大的数据表连接在一起

我已经创建了聚集索引、主键索引和非聚集覆盖索引。我已经将Varchar列修改为Char以用于空间,我已经使用了所有筛选条件

我的桌子看起来像:

(2 crores data)
CREATE TABLEA (
ApplicationNO Varchar(25)PK,
Service_type VARCHAR(10),
service_id VARCHAR(10),
ISActive Char(1))

(300 records)
CREATE TABLEB(
service_name Varchar(25),
service_id VARCHAR(10),
service_type VARCHAR(10),
Department_id Char(3))
我的问题是:

Select A.Servicename,
Count(A.ApplicationNo),
sum(case when p.IS_Active='Y' then 1 else 0 end )as'Complted',
sum(case when p.IS_Active='N' then 1 else 0 end )as'InComplete'
 from TableA A INNER JOIN TableB  B(Service Data)
ON A.ServiceId = B.ServiceId AND A.ServiceType = B.ServiceType 
Where DateFilters fromDate and ToDate AND S.ISActive = 'Y'
在创建索引之后,我还是花了很多时间尝试其他方法


请告诉我可能的方法

使用以下代码:

等同于
A.Service\u Id=B.Service\u Id
而不是
A.ServiceId=B.ServiceName

As服务名称服务id不匹配

使用此代码:

Select A.Servicename,
Count(A.ApplicationNo),
sum(case when p.IS_Active='Y' then 1 else 0 end )as'Complted',
sum(case when p.IS_Active='N' then 1 else 0 end )as'InComplete'
 from TableA A INNER JOIN TableB  B(Service Data)
ON A.ServiceId = B.Service_id AND A.ServiceType = B.ServiceType 
Where DateFilters fromDate and ToDate AND S.ISActive = 'Y'

别害羞。告诉我们您创建了哪些索引。另外,编辑查询,使其语法正确。(例如,什么是“DateFilters”?什么是
s.isacditive
)。这些表有主键吗?请不要使用像croreyes这样的印度词,它有primarykey和DateFilters(从date到Todate),Isactive意味着只获取庞大数据表中的所有活动记录“DateFilters fromDate和Todate”不是有效的SQL,你的两张桌子都没有日期。请不要遗漏可能重要的内容。我不明白您在您的查询中给@Kavin Chakaravarthias的内容。服务id对应于服务名称。这是一个拼写错误。很抱歉,我只使用了服务id