有经验的朋友能否谈谈数据库优化从哪几个方面考虑? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 纯属补充:(转)--存储衍生数据 对一些要做大量重复性计算的过程而言,若重复计算过程得到的结果相同,或计算牵扯多行数据需额外的磁盘I/O开销,或计算复杂需要大量的CPU时间,就考虑存储计算结果(冗余储存)。现予以分类说明: 若在一行内重复计算,就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器更新这个新列。 若对表按类进行重复计算,就增加新表(一般而言,存放类和结果两列就可以了)存储相关结果。但若参与计算的列被更新时,就必须要用触发器立即更新、或存储过程或应用代码批量更新这个新表。 若对多行进行重复性计算(如排名次),就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器或存储过程更新这个新列。 总之,存储冗余数据有利于加快访问速度;但违反了第三范式,这会增加维护数据完整性的代价,必须用触发器立即更新、或存储过程或应用代码批量更新,以维护数据的完整性。 --消除昂贵结合 对于频繁同时访问多表的一些主要过程,考虑在主表内存储冗余数据,即存储冗余列或衍生列(它不依赖于主键),但破坏了第三范式,也增加了维护难度。在源表的相关列发生变化时,必须要用触发器或存储过程更新这个冗余列。当主要过程总同时访问两个表时可以合并表,这样可以减少磁盘I/O*作,但破坏了第三范式,也增加了维护难度。对父子表和1:1关系表合并方法不同:合并父子表后,产生冗余表;合并1:1关系表后,在表内产生冗余数据。 看看胡百敬的<SQLserver性能调校>吧 硬件负载平衡内存I/0速度CPU个数带宽软件表结构(第三泛式)表架构(分区视图)索引(簇级和非簇级,小表不创建索引等)查询技巧(索引的利用) 请帮忙看一道简单的分页语句 如何从三个表提出数据插入一个表中 表分列问题? 数据库查询问题 delphi SQL数据库 连接时"对象打开时 不允许操作" 查询产品分类中一年内每个月的生产汇总,销售汇总,剩余汇总 为什么出现这样的问题? 急死了,急死了,请大家一定要帮帮忙啊 不能访问选取定表是怎么回事?在线等待!!!! 请问,我在winnt server 4.0 上以administrator的身份安装了sqlserver6.5..... 求SQL语句 求一条统计排序语句
对一些要做大量重复性计算的过程而言,若重复计算过程得到的结果相同,或计算牵扯多行数据需额外的磁盘I/O开销,或计算复杂需要大量的CPU时间,就考虑存储计算结果(冗余储存)。现予以分类说明:
若在一行内重复计算,就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器更新这个新列。
若对表按类进行重复计算,就增加新表(一般而言,存放类和结果两列就可以了)存储相关结果。但若参与计算的列被更新时,就必须要用触发器立即更新、或存储过程或应用代码批量更新这个新表。
若对多行进行重复性计算(如排名次),就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器或存储过程更新这个新列。
总之,存储冗余数据有利于加快访问速度;但违反了第三范式,这会增加维护数据完整性的代价,必须用触发器立即更新、或存储过程或应用代码批量更新,以维护数据的完整性。
--消除昂贵结合
对于频繁同时访问多表的一些主要过程,考虑在主表内存储冗余数据,即存储冗余列或衍生列(它不依赖于主键),但破坏了第三范式,也增加了维护难度。在源表的相关列发生变化时,必须要用触发器或存储过程更新这个冗余列。当主要过程总同时访问两个表时可以合并表,这样可以减少磁盘I/O*作,但破坏了第三范式,也增加了维护难度。对父子表和1:1关系表合并方法不同:合并父子表后,产生冗余表;合并1:1关系表后,在表内产生冗余数据。
负载平衡
内存
I/0速度
CPU个数
带宽软件
表结构(第三泛式)
表架构(分区视图)
索引(簇级和非簇级,小表不创建索引等)
查询技巧(索引的利用)