数据库统计速度慢,请教解决方法

mazhen 2002-11-18 11:13:27
我们做的程序要统计数据库中的一个表的原始数据,分析后把结果保存在另一个表中.
但是数据很多 一般每个表都有 几百万,所以程序统计很慢, 有什么好解决办法吗?
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCEO 2002-11-20
  • 打赏
  • 举报
回复
实际上关于冗余列应该是在数据库的概念设计阶段开始考虑的问题,在以后还可以调整。
性能优化可以说是写一本书也说不完的话题,但是可以分概念设计(包括结构、架构等)、物理设计(包括存储设计、索引等)、sql语句优化(包括存储过程的优化)、服务器配置(包括cpu、i/o、网络等)等方面。后期的调整主要集中在索引、sql语句优化、服务器参数的调整等。


dotAge 2002-11-20
  • 打赏
  • 举报
回复
基本同意CCEO的意见,但对于一个几百万条记录的表来讲,冗余列大部分情况下是需要抛弃的,除非该列的数据也是来自于一个相当大的表,也就是楼上CHUMP说的,大表之间慎做连接的意思。
实际上,在性能指标优先的情况下,若这冗余列来自于另一个大表的时候,还要考虑对此表进行分区,减小体积为主业务表提供高速参照服务。
CCEO 2002-11-19
  • 打赏
  • 举报
回复
不同意见:
2,原始数据表结构若能优化,请尽量减小列数和宽度,抛弃任何一个冗余列,在这个问题上要做到斤斤计较,因为宽度每少一个字节,总体积就减少几M!

关于冗余列,一定要综合考虑,一般来说冗余列是为了提高查询速度而加的,加冗余列是一种用空间来换时间的方法。
dotAge(老朽,提醒你及时结贴) 的“抛弃任何一个冗余列”的说法我不同意!

楼主的另一个贴有我的更多回复。
http://expert.csdn.net/Expert/topic/1187/1187730.xml?temp=2.012271E-02
chump 2002-11-19
  • 打赏
  • 举报
回复
补充:
1:大表之间少做连接!
2:优化存储过程的写法!
dotAge 2002-11-18
  • 打赏
  • 举报
回复
1,统计条件涉及的字段做索引
2,原始数据表结构若能优化,请尽量减小列数和宽度,抛弃任何一个冗余列,在这个问题上要做到斤斤计较,因为宽度每少一个字节,总体积就减少几M!
3,尽量用存储过程进行统计计算,能不用游标则不用
4,提高硬件处理能力

22,209

社区成员

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

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