会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> C/S程序开发专区 >> PB编程论坛 >> 对数据库进行优化?
首页
中资源
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 1969 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
 * 贴子主题:对数据库进行优化? 悬赏分100 [提问中] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 txi2008 帅哥哟,离线,有人找我吗?巨蟹座1985-7-12
  
  
  等 级:版主
  积 分:264
  专家分:204
  提问帖:6/5
  回答帖:22
  总帖数:331
  经验值:680
  注 册:2006-4-13
给txi2008发送一个短消息 把txi2008加入好友 查看txi2008的个人资料 搜索txi2008在PB编程论坛的所有贴子  引用回复这个贴子 回复这个贴子楼主
发贴心情 

对数据库进行优化?

当数据库中记录达到10W条以上时,检索再来的数据就会变慢
当记录达到50W以上时,如何进行优化才能使检索出来数据控制在10秒以内。
我看咱们网站检索出来的速度就很快,所以小新一定要出来说说经验。
还有当多个表关联时是不是检索的速度要慢些呀?

没有最好,只有更好

发帖:2007-10-25 18:41:00
  鲜花(0)  鸡蛋(0)
 longying 帅哥哟,离线,有人找我吗?
  
  
  头 衔:鬼龙
  等 级:论坛游民
  积 分:420
  专家分:93
  提问帖:6/4
  回答帖:36
  总帖数:130
  经验值:273
  注 册:2007-10-24
给longying发送一个短消息 把longying加入好友 查看longying的个人资料 搜索longying在PB编程论坛的所有贴子  引用回复这个贴子 回复这个贴子2
发贴心情 

哎!!太深奥偶不会!!!

十日樱花作意开,绕花岂惜日千回?昨来风雨偏相厄,
谁向天人述此哀,忍见故沙埋艳骨,休将清泪滴深怀,
多情满向他年意,一寸春心早已灰!!

发帖:2007-10-25 19:42:00
 爱过流星 帅哥哟,离线,有人找我吗?
  
  
  等 级:管理员
  积 分:9522
  专家分:6929
  提问帖:10/6
  回答帖:439
  总帖数:1443
  经验值:1936
  注 册:2006-1-4
给爱过流星发送一个短消息 把爱过流星加入好友 查看爱过流星的个人资料 搜索爱过流星在PB编程论坛的所有贴子 引用回复这个贴子 回复这个贴子3
发贴心情 

多表关联多少会影响性能,但是只要不用子查询应该会快很多。

另外10w条记录应该不是同时取出来吧?好的分页算法可以只返回当前页的记录。

适当索引也对性能有很大影响

推荐些文章给你

http://www.programbbs.com/doc/search.asp?keyword=%D0%D4%C4%DC&type=9&aim=0


按此在新窗口浏览图片

发帖:2007-10-25 19:47:00
 张凌云 帅哥哟,离线,有人找我吗?
  
  
  头 衔:小小程序员
  等 级:初出江湖
  积 分:1420
  专家分:551
  提问帖:0/0
  回答帖:73
  总帖数:94
  经验值:161
  注 册:2007-5-14
给张凌云发送一个短消息 把张凌云加入好友 查看张凌云的个人资料 搜索张凌云在PB编程论坛的所有贴子 引用回复这个贴子 回复这个贴子4
发贴心情 

利用存储过程啊,把所有需要存储的数据信息打包放入一个存储过程,
然后用exec加上存储过程名调用存储过程检索数据速度超快,刷一下子
就过去了,一般的大型网站都用到.多表关联查询肯定会影响检索速度.

做好程序是我的职责所在,还请大家多多指教。

发帖:2007-10-26 2:34:00
 独孤浪 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:241
  专家分:0
  提问帖:1/1
  回答帖:6
  总帖数:24
  经验值:80
  注 册:2007-10-28
给独孤浪发送一个短消息 把独孤浪加入好友 查看独孤浪的个人资料 搜索独孤浪在PB编程论坛的所有贴子  引用回复这个贴子 回复这个贴子5
发贴心情 

最好在检索书籍字段上创建索引! 可以把数据库事件探测器打开进行优化,设置CommandTimeout时间增大,避免访问数据库超时。。!

许多事情,总是在经历以后才会懂得。痛过了,才会懂得如何保护自己;傻过了,才会懂得适当的坚持和放弃。在得到和失去之间我慢慢地认识自己。其实生活并不需要这么多的无谓的执著,没有什么就真的不能割舍。

发帖:2007-10-28 14:59:00
 张凌云 帅哥哟,离线,有人找我吗?
  
  
  头 衔:小小程序员
  等 级:初出江湖
  积 分:1420
  专家分:551
  提问帖:0/0
  回答帖:73
  总帖数:94
  经验值:161
  注 册:2007-5-14
给张凌云发送一个短消息 把张凌云加入好友 查看张凌云的个人资料 搜索张凌云在PB编程论坛的所有贴子 引用回复这个贴子 回复这个贴子6
发贴心情 

怎么过了怎么久还不结贴啊~

做好程序是我的职责所在,还请大家多多指教。

发帖:2007-11-27 23:10:00
 若惜 美女呀,离线,快来找我吧!狮子座1984-8-13
  
  
  头 衔:好好活着
  等 级:贵宾
  积 分:9160
  专家分:4297
  提问帖:10/9
  回答帖:643
  总帖数:980
  经验值:1457
  注 册:2007-7-17
给若惜发送一个短消息 把若惜加入好友 查看若惜的个人资料 搜索若惜在PB编程论坛的所有贴子  访问若惜的主页 引用回复这个贴子 回复这个贴子7
发贴心情 

搜索满足条件的记录,也是要考虑效率的呵呵

这个可以自己慢慢思考


封沉往事

http://luxfhappy.blog.163.com/blog

http://memory_of_love.51.com

发帖:2007-11-28 12:34:00
 chinacchh 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:230
  专家分:0
  提问帖:0/0
  回答帖:2
  总帖数:3
  经验值:55
  注 册:2007-11-30
给chinacchh发送一个短消息 把chinacchh加入好友 查看chinacchh的个人资料 搜索chinacchh在PB编程论坛的所有贴子 引用回复这个贴子 回复这个贴子8
发贴心情 

路过,,,

http://7da.cn   易达
出售以下域名:
zhaozz.com  找站长
zhaozz.cn     同上
92seo.com   就爱SEO

发帖:2007-11-30 10:37:00
 edward824 帅哥哟,离线,有人找我吗?金牛座1987-4-28
  
  
  头 衔:S→Junior
  等 级:初出江湖
  积 分:318
  专家分:18
  提问帖:1/1
  回答帖:8
  总帖数:23
  经验值:80
  注 册:2007-6-15
给edward824发送一个短消息 把edward824加入好友 查看edward824的个人资料 搜索edward824在PB编程论坛的所有贴子 引用回复这个贴子 回复这个贴子9
发贴心情 

唉。。才只学了数据库原理。。只知道太多的连接(比如自然连接,笛卡尔乘积等等)会影响查询的效率,
还有建立索引也可以改善效率。。。其他就不知道了。。。刚学。。。

分页算法。。。OS也刚学。。。呵呵


在我每个迷茫的时候,请用最激昂的乐符振聋发聩地将我震醒

发帖:2007-12-13 21:22:00
 ying_wzm 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:215
  专家分:0
  提问帖:0/0
  回答帖:1
  总帖数:3
  经验值:58
  注 册:2008-1-1
给ying_wzm发送一个短消息 把ying_wzm加入好友 查看ying_wzm的个人资料 搜索ying_wzm在PB编程论坛的所有贴子 引用回复这个贴子 回复这个贴子10
发贴心情 

优化数据库的思想:
  ================
  1、关键字段建立索引。
  2、使用存储过程,它使SQL变得更加灵活和高效。
  3、备份数据库和清除垃圾数据。
  4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的
序列号)
  5、清理删除日志。

  SQL语句优化的原则:  
  ==================
  1、使用索引来更快地遍历表。
  缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:
  ①.有大量重复值、且经常有范围查询
  (between, > ,< ,> =,< =)和order by、group by发生的列,可考虑建立群集索引;
  ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引;
  ③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。索引虽有助于提高性能但不是索引越多越好,恰好相反过多的索引会导致系统低效。用户在表中每加进一个索引,维护索引集合就要做相应的更新工作。
  2、IS NULL 与 IS NOT NULL
  不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的。
  3、IN和EXISTS
  EXISTS要远比IN的效率高。里面关系到full table scan和range scan。几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。
  4、在海量查询时尽量少用格式转换。
  5、当在SQL SERVER 2000中,如果存储过程只有一个参数,并且是OUTPUT类型的,必须在调用这个存储过程的时候给这个参数一个初始的值,否则会出现调用错误。
  6、ORDER BY和GROPU BY
  使用ORDER BY和GROUP BY短语,任何一种索引都有助于SELECT的性能提高。注意如果索引列里面有NULL值,Optimizer将无法优化。
  7、任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。
  8、IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复值,可以考虑把子句拆开。拆开的子句中应该包含索引。
  9、SET SHOWPLAN_ALL ON 查看执行方案。DBCC检查数据库数据完整性。
  DBCC(DataBase Consistency Checker)是一组用于验证 SQL Server 数据库完整性的程序。
  10、慎用游标
  在某些必须使用游标的场合,可考虑将符合条件的数据行转入临时表中,再对临时表定义游标进行操作,这样可使性能得到明显提高。

发帖:2008-1-16 20:30:00

本主题贴数15,分页:[上一页] [1] [2] [下一页]
 *快速回复:对数据库进行优化?  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]

    管理选项锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告