我用的SQl  SERVER 2000数据库,
我的表结构是时间点                        参数1                   参数2                   参数3
2009-3-3 10:10:10             30.54                   3.24                    323
2009-3-3 10:10:11             31.54                   3.14                    234
2009-3-3 10:10:12             30.24                   3.14                    234
2009-3-3 10:10:13             30.59                   3.21                    456
2009-3-3 10:10:14             30.00                   3.19                    432

。1.它支持毫秒的时间格式吗?  因为实时中可能每秒有5-10条左右的记录数据, 需要每个数据打上时间标签。2.数据库分表的问题,我的系统是每天实时的监测,一天最多有60*60*24*10=864000条记录,连续几天的监测,肯定必须要分表。那分表以什么标准去分呢?分表后 这些表怎么去管理?建立索引?例如我想查询某个参数的连续两个月的平均值,甚至半年的平均值。sql语句怎么去写,关键是这些表怎么联接?关键是查询的效率要高?

解决方案 »

  1.   


    SELECT GETDATE()
    /**
                                                           
    ------------------------------------------------------ 
    2009-12-21 10:40:43.247(所影响的行数为 1 行)
    **/
      

  2.   

    declare @s datetime,@s1 smalldatetimeselect @s=getdate(),@s1=getdate()select @s,@s1-----------------------------------------------------
    2009-12-21 10:40:42.147          2009-12-21 10:41:00(1 行受影响)
      

  3.   

    1.sqlserver的精度是3.33毫秒,你最好加一列identity列
    2.按月建表,插数据
      

  4.   

    datetime values are rounded to increments of .000, .003, or .007 seconds, as shown in the following table.Example  Rounded example  
    01/01/98 23:59:59.999
     1998-01-02 00:00:00.000
     
    01/01/98 23:59:59.995,01/01/98 23:59:59.996,01/01/98 23:59:59.997, or01/01/98 23:59:59.998
     1998-01-01 23:59:59.997
     
    01/01/98 23:59:59.992,01/01/98 23:59:59.993, or01/01/98 23:59:59.994
     1998-01-01 23:59:59.993
     
    01/01/98 23:59:59.990 or01/01/98 23:59:59.991
     1998-01-01 23:59:59.990
     
      

  5.   

    1.它支持毫秒的时间格式吗?  因为实时中可能每秒有5-10条左右的记录数据, 需要每个数据打上时间标签。建议使用自动编号 identity(1,1) ,毕竟时间上还是有可能重复的。
    2.数据库分表的问题,我的系统是每天实时的监测,一天最多有60*60*24*10=864000条记录,连续几天的监测,肯定必须要分表。那分表以什么标准去分呢?分表后 这些表怎么去管理?建立索引?使用分区表。