SQL数据库高手来

abbey0812 2010-08-28 07:57:22
SQL语句的优化

select Province as 省份,count(distinct SendNumber) as 条数
from NumberBelong n,RecvSmsTable r,SendCustomers s
where n.Num = substring(r.SendNumber,1,7)
and dbo.Fun_BusinessId(r.SmsContent) = s.[ID]
and r.SmsTime >= '2010-08-01 00:00:00'
and r.SmsTime <= '2010-08-28 23:59:59'
and n.Province='广东省'
group by Province

这个查询速度要20多秒,高手指点。 这是3张表进行连接查询,3个表都还没有建立索引
因为实在不知道如何建索引, 先把3张表的字段分别列出
表名:NumberBelong
字段:NumId(自动增长) Num(号码) Code(区号-7位) Province(省)City(市)CardType(手机卡类型)
总共有174495条数据

表名:RecvSmsTable
字段:SmsIndex(自动增长)SmsTime(时间)SendNumber(发送号码-11位)SmsContent(发送内容)
总共有100万条数据

表名:SendCustomers
字段:ID(varchar类型)name(客户名称)
共100条

高手帮帮忙,急~
...全文
111 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
abbey0812 2010-08-29
  • 打赏
  • 举报
回复
楼上可以具体说明么?5555,跪求高手指点。
Rotel-刘志东 2010-08-29
  • 打赏
  • 举报
回复
创建复合索引了。
select Province as 省份,count(distinct SendNumber) as 条数   
from NumberBelong n,RecvSmsTable r,SendCustomers s
where n.Num = substring(r.SendNumber,1,7)
and dbo.Fun_BusinessId(r.SmsContent) = s.[ID]
and r.SmsTime >= '2010-08-01 00:00:00'
and r.SmsTime <= '2010-08-28 23:59:59'
and n.Province='广东省'
group by Province
abbey0812 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 obuntu 的回复:]
Try ~


SQL code

create clustered index idx_numid on NumberBelong(NumId)

create clustered index idx_smsindex on RecvSmsTable(SmsIndex)

create nonclustered index idx_SmsTime on RecvSmsTable……
[/Quote]这个试过了,效果不大呀 ,还是一样的呢,高手帮我再想想吧,谢谢了大侠
abbey0812 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 abbey0812 的回复:]
自己顶~
[/Quote]

这个试过了,效果不大呀 ,还是一样的呢,高手帮我再想想吧,谢谢了大侠
abbey0812 2010-08-29
  • 打赏
  • 举报
回复
高手都哪去了呀~急急急
xiaoxiao8372 2010-08-28
  • 打赏
  • 举报
回复
dbo.Fun_BusinessId(r.SmsContent) 根据发送内容就能确定业务代码吗?? 你可以用临时表先把符合where n.Num = substring(r.SendNumber,1,7)and dbo.Fun_BusinessId(r.SmsContent) = s.[ID] 条件的放到表里,然后在用临时表做条件关联!不过,楼主最好还是能把数据库提供出来啊,呵呵!!
obuntu 2010-08-28
  • 打赏
  • 举报
回复
Try ~


create clustered index idx_numid on NumberBelong(NumId)

create clustered index idx_smsindex on RecvSmsTable(SmsIndex)

create nonclustered index idx_SmsTime on RecvSmsTable(SmsTime)


abbey0812 2010-08-28
  • 打赏
  • 举报
回复
自己顶~
内容简介 《Java高手真经(应用框架卷):Java Web核心框架》适合作为Java相关培训机构的教材,也可作为Java自学人员的参考手册。书首先分析了Java Web应用的分层设计方法,并进行应用框架的选型,然后讲解各种Java Web应用框架、集成技术、实战开发。主要内容包括如下。持久层框架Hibernate:讲解Hibernate入门与核心技术,分别实现MySQL、Oracle、SQL Server数据库的信息系统开发。持久层框架iBATIS:讲解iBATIS入门与核心技术,分别实现MySQL、Oracle、SQL Server数据库的信息系统开发。表现层框架Struts 1:讲解Struts 1的入门配置、核心组件、标签库、国际化、数据校验、Sitemesh集成、数据库开发技术,并分别实现与Hibernate、iBATIS持久层框架的集成开发。..表现层框架Struts 2:讲解Struts 2的入门配置、核心组件、标签库、国际化、数据校验、转换器、拦截器,并分别实现与Hibernate、iBATIS持久层框架的集成开发。业务层框架Spring:讲解Spring的入门配置与IoC容器,并讲解使用Spring进行MVC应用开发的标签库、国际化、数据校验、数据库开发技术。多层框架集成:实现5种框架的搭配集成,分别实现SSH 1、SSI 1、SSH 2、SSI 2集成框架的开发。随书附赠光盘内容为《Java高手真经(应用框架卷):Java Web核心框架》各种原型包、系统源程序。《Java高手真经(应用框架卷):Java Web核心框架》内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行框架技术。无论对于Java软件设计还是软件开发,《Java高手真经(应用框架卷):Java Web核心框架》都是精通开发Java Web应用的必备的实用手册。

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧