SQL SERVER如何提高查询速度

xphsmile 2013-09-11 04:06:15
现在有一个SQL Server2000的数据库服务器
功能类似ERP;有约20张表,其中最大的表几百万条数据
后期查询经常涉及到多张表的链接查询,
速度越来越慢
有时候一条sql 语句过去,导致服务器直接卡了.
急求有什么办法可以优化啊?

关于表的主键,索引有,可能不全,但是我觉得貌似只靠这些不能解决根本问题
不知道类似csdn,淘宝这些大型网站是怎么做到流畅的.

请高手指点,谢谢!!!
...全文
475 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeya66 2013-09-25
  • 打赏
  • 举报
回复
1,换硬件 2、换数据库到2008,至少2005 3、按年度拆数据, 4、索引, 5、检查sql语句有没有乱写,比如子查询,like之类的严重影响效率的语句优化掉
xphsmile 2013-09-24
  • 打赏
  • 举报
回复
引用 26 楼 sbwwkmyd 的回复:
数据库只适应于索引数据的简单查询处理,其它的最好使用其它程序语言的缓存机制处理。
你的方法应该就是类似建立查询中间层了哈
xphsmile 2013-09-24
  • 打赏
  • 举报
回复
引用 28 楼 wg3360 的回复:
解决根本问题,建议把历史数据迁移到历史表,当真正要使用时才查询,查询可以通过视图或者存储过程来关联
这个不能解决查询速度的问题
北极海hein 2013-09-17
  • 打赏
  • 举报
回复
关于SQL执行速度问题,应该从以下几方面考虑。 1.首先检讨所写的SQL,是否有调整的空间,先优化SQL. 2.对表的数据量都行分析,必要时建立相应的索引。 3.监测服务器硬盘IO,内存,CUP使用状况。 需要更多的帮助请找我 http://item.taobao.com/item.htm?spm=686.1000925.1000774.36.OGsWSi&id=27406928729
小葫芦 2013-09-16
  • 打赏
  • 举报
回复
解决根本问题,建议把历史数据迁移到历史表,当真正要使用时才查询,查询可以通过视图或者存储过程来关联
xxxuan 2013-09-12
  • 打赏
  • 举报
回复
我也是有300多万数据,但查询很快基本不超0.1秒, 第一换数据库成mssql2008 第二内存加大 第三做主键和索引对使用where条件的,使用存储过程,临时表等
showjim 2013-09-12
  • 打赏
  • 举报
回复
数据库只适应于索引数据的简单查询处理,其它的最好使用其它程序语言的缓存机制处理。
苦逼的程序员 2013-09-12
  • 打赏
  • 举报
回复
帮顶,期待解决
xphsmile 2013-09-12
  • 打赏
  • 举报
回复
感谢各位的指教!
Q315054403 2013-09-11
  • 打赏
  • 举报
回复
Profiler一下,对照表结构(索引)针对处理,就是件容易的事儿了
  • 打赏
  • 举报
回复
你的服务器是PC 服务器,还是普通的桌面电脑,如果是普通的桌面电脑,建议换个服务器,性能肯定没办法和服务器相比,否则的话,怎么优化也是慢,因为查询的关键瓶颈,还是磁盘速度慢,普通电脑的硬盘速度,和服务器还是有差距的,其他的内存配置、cpu配置也有差距。 通过索引,能适当的提高查询的速度,但建了索引,就会增加insert、update的开销,反而是insert、update的时间增加,也会导致锁定的时间更长,反过来又会使查询变慢,所以这是一个复杂的问题。不过,还是可以尝试一下索引,如果索引建了,还是慢,再通过update statistics 表名称,来更新统计信息,如果这样还是慢,可以考虑换个服务器。 淘宝之所以查询速度那么快,是因为它采用了更加复杂的架构,通过在应用服务器和数据库服务器之间,加了一层数据缓存层cache,大量的数据查询,直接通过应用程序从cache中查找,也就是直接从内存中查询,所以速度非常快,当然,成本也是很高的,还需要有技术实力来开发自己的cache软件。
haitao 2013-09-11
  • 打赏
  • 举报
回复
引用 15 楼 xphsmile 的回复:
[quote=引用 14 楼 sz_haitao 的回复:] 内存要大一点 慢的sql,关联涉及的字段,索引都要有。。。。
关联涉及的字段索引都要? 会不会对写入造成不良的影响啊? to 发愤图强,我写表值函数原因,是因为sql语句实在太长了,写个函数更容易看明白.这样是否可行? 只有一层函数,没有函数中调函数.[/quote] 索引对查询快了,对于修改就慢了 取舍看业务需求了 但是,对于影响查询最大的字段加索引,还是必要的
xphsmile 2013-09-11
  • 打赏
  • 举报
回复
引用 19 楼 hdhai9451 的回复:
[quote=引用 8 楼 xphsmile 的回复:] [quote=引用 4 楼 hdhai9451 的回复:] 你的数据库服务器配置如何?如果可以,加外建一个数据存储大表历史数据,专门供完整查询。如果数据库服务器配置一般,则要建数据到另外一台机器,相当于做备份数据库。 大表数据保留20万条数据以内,其他历史数据迁移到备份数据库,查询大表可以从另备份数据库查询,分胆主服务任务。 象那些大型网站服务器做成群集,数据实时同步,有专门的路由服务器,接到访问请求后,把请求分配到空闲服务去执行,保证影响速度最快。
你说的历史数据迁移,采用什么办法呢?[/quote] 就是新建一个备份的数据库,大表的数据在这个备份数据库上是完整的。而上正式机上是仅有部分,这样做的目的就是提高正式机的查询速度 [/quote] 这个备份的过程是实时的吗? 存在查询正式机不能满足所有数据的情况呢
Andy__Huang 2013-09-11
  • 打赏
  • 举报
回复
引用 8 楼 xphsmile 的回复:
[quote=引用 4 楼 hdhai9451 的回复:] 你的数据库服务器配置如何?如果可以,加外建一个数据存储大表历史数据,专门供完整查询。如果数据库服务器配置一般,则要建数据到另外一台机器,相当于做备份数据库。 大表数据保留20万条数据以内,其他历史数据迁移到备份数据库,查询大表可以从另备份数据库查询,分胆主服务任务。 象那些大型网站服务器做成群集,数据实时同步,有专门的路由服务器,接到访问请求后,把请求分配到空闲服务去执行,保证影响速度最快。
你说的历史数据迁移,采用什么办法呢?[/quote] 就是新建一个备份的数据库,大表的数据在这个备份数据库上是完整的。而上正式机上是仅有部分,这样做的目的就是提高正式机的查询速度
發糞塗牆 2013-09-11
  • 打赏
  • 举报
回复
为什么不可以?存储过程调用存储过程再调用存储过程我都见过,我的意思是说把函数的逻辑如果可以,就直接写成存储过程,没必要为了减少代码量而封装成函数
xphsmile 2013-09-11
  • 打赏
  • 举报
回复
引用 16 楼 DBA_Huangzj 的回复:
[quote=引用 15 楼 xphsmile 的回复:] [quote=引用 14 楼 sz_haitao 的回复:] 内存要大一点 慢的sql,关联涉及的字段,索引都要有。。。。
关联涉及的字段索引都要? 会不会对写入造成不良的影响啊? to 发愤图强,我写表值函数原因,是因为sql语句实在太长了,写个函数更容易看明白.这样是否可行? 只有一层函数,没有函数中调函数.[/quote] 1、下次不要to,直接引用,我就看到你回复了。 2、不是不可行,但是大材小用了。你还不如搞个存储过程更好 3、还是那句,不是有索引就是好的。要用好[/quote] 在存储过程中调用函数了.存储过程不能被调用把
發糞塗牆 2013-09-11
  • 打赏
  • 举报
回复
引用 15 楼 xphsmile 的回复:
[quote=引用 14 楼 sz_haitao 的回复:] 内存要大一点 慢的sql,关联涉及的字段,索引都要有。。。。
关联涉及的字段索引都要? 会不会对写入造成不良的影响啊? to 发愤图强,我写表值函数原因,是因为sql语句实在太长了,写个函数更容易看明白.这样是否可行? 只有一层函数,没有函数中调函数.[/quote] 1、下次不要to,直接引用,我就看到你回复了。 2、不是不可行,但是大材小用了。你还不如搞个存储过程更好 3、还是那句,不是有索引就是好的。要用好
xphsmile 2013-09-11
  • 打赏
  • 举报
回复
引用 14 楼 sz_haitao 的回复:
内存要大一点 慢的sql,关联涉及的字段,索引都要有。。。。
关联涉及的字段索引都要? 会不会对写入造成不良的影响啊? to 发愤图强,我写表值函数原因,是因为sql语句实在太长了,写个函数更容易看明白.这样是否可行? 只有一层函数,没有函数中调函数.
haitao 2013-09-11
  • 打赏
  • 举报
回复
内存要大一点 慢的sql,关联涉及的字段,索引都要有。。。。
發糞塗牆 2013-09-11
  • 打赏
  • 举报
回复
另外,不是有索引就会快,没有用好索引,比没有索引危害更大,至于怎么用好,这真不好说,万能答案——具体问题具体分析
加载更多回复(12)

22,206

社区成员

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

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