请教各位开展关于时间字段的讨论

sunsol 2000-06-07 01:37:00

国内大多数大型数据库都少不了存储时间的字段,
如银行和电信.在添加记录的时候,往往包含时间的信息,
可对时间字段作索引太慢了,如果时间信息达到秒的级别,
其不重复量极为庞大,一天十万多秒,一年就三四千万秒,
如果带索引进行添加记录,一条就要定位半天.
不过往往添加记录的时候,时间总是在已有记录的索引靠后的
地方,如果可以直接修改索引恐怕比一般的自动添加索引快的多,
请问各类型的数据库是否可以做到这一点?
不过时间索引往往最没有用,当我们需要按月,星期,日
统计的时候可能索引还有用,但当按每月几号,星期几,
每天几点到几点统计的时候就用不上呢.
时间信息中隐藏的信息类别太多,比起其他我们建立的字段
所含信息多的多,例如电话号码字段包含了部分用户所在
地区的信息(不少城市号码前三位表示其电话所在的分局),
当我们统计分析数据的时候,挖掘其隐藏信息就极为重要,
时间字段的处理又很麻烦,能不能请各位谈谈你们如何处理的?
...全文
133 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsh 2000-06-19
  • 打赏
  • 举报
回复
我业想知道
w102272 2000-06-19
  • 打赏
  • 举报
回复
还有两个办法,
一个是按照时间分段建不同的表,每个表的结构完全相同,
插入数据的时候,用程序判断应该象哪个表中插入,这样可以
有效地减少每个表中的数据量。
毕竟,建表的情况很少,而且一般业务增删查询都是在指定之间段内发生的
这样的缺点是:不能做跨时间段的统计。

另一个方法就是sundy1的方法,按照时间段建立专门的统计表,
但是进行统计的时机不应该是定时增加统计结果,而应该写入到
数据库的触发器中去。
这样,一旦新的数据录入,立刻进行增量方式的统计,非常大的
统计计算量就被分散到了每次数据插入和更新的时候,既能保证
统计数据的准确性,也不存在后期的大量统计处理工作了。
这样做的缺点是,业务逻辑必须写在存储过程中,
将来做出来的系统依赖于DB系统,难以修改和移植,开发难度也比较大。

sunsol 2000-06-12
  • 打赏
  • 举报
回复

是不是作的和股票差不多,更新周线日线.
你这样做就是把原来的一个时间单元的信息再次分类,
就如我们一般对数据的统计一样,按不同的分类(字段)
进行统计,而时间字段由于含有分类的信息,将其再分类
以便使其信息变为不可再分的原信息.
我这样的理解对不对?
又没有其他的思路?
sundyl 2000-06-11
  • 打赏
  • 举报
回复
在SQL server中,如果添加的时间总是最新的,可以把这个字段作为镞索引,那样每次添加都会加入到最后,一般不会影响速度。如果加入的时间没有规律,就最好不要设置成镞索引。
对于不按时间段查询,我一般是另外建立一个表,里面有年,月,日,星期几,小时,分和主表的ID,以后作一个定时事务,每天吧当天的数据转化后插入到这张表中,但是缺点也非常多,1、非常费时间,2、数据库变得非常大 3、查询的数据不是最新的

但是在电信局用的数据库上我认为应该分别为每小时、每天、每一周、每月、每年建立专门的统计表,定时增加统计结果,因为可以说不存在修改历史数据的可能,即使修改也可以只对修改过的数据重新统计,甚至可以做成触发器,自动响应修改,毕竟修改的情况很少,不会过于影响速度。
Carrie 2000-06-07
  • 打赏
  • 举报
回复
我也想知道.

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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