日期:2014-05-18  浏览次数:20431 次

分表和分库的问题
SQL   Server   2005

现在有这样一个计算机属性表,
计算机ID   操作系统     IP地址               MAC地址   CPU   MAC   安装的软件列表   ...
10001           WinXP         10.175.1.1   ................
10002           Win2000     10.175.12.32   ................

字段有100个左右,记录有20万行

现在需要建立一个表保存上面的数据,要求每月保存一次,保存最近24个月,也就是最多会有20*24,约500万行的数据。

汇总数据主要用来进行报表分析展示,会有同期对比统计之类的需求,不会对历史数据做更新。

由于字段比较多,数据量比较大,如果一行100K,500万行就是500GB...比较担心最后的查询性能比较差,是否需要分表或者分库存储?比如分2个库,每个库12个表,对应24个月的数据?怎么样最合理呢?谢谢大家!

------解决方案--------------------
一行100K?那还是考虑使用全文检索吧。
------解决方案--------------------
ALTER DATABASE callbook_dw ADD FILEGROUP [callRange10w]
ALTER DATABASE callbook_dw ADD FILEGROUP [callRange20w]
ALTER DATABASE callbook_dw ADD FILEGROUP [callRange30w]
--2.创建物理文件
ALTER DATABASE callbook_dw
ADD FILE
(NAME = N 'filecallRange10w ',FILENAME = N 'c:\callbook_dw\filecallRange10w.ndf ',SIZE = 50MB,MAXSIZE = 100MB,FILEGROWTH = 5MB)
TO FILEGROUP [callRange10w]
go
ALTER DATABASE callbook_dw
ADD FILE
(NAME = N 'filecallRange20w ',FILENAME = N 'd:\callbook_dw\filecallRange20w.ndf ',SIZE = 50MB,MAXSIZE = 100MB,FILEGROWTH = 5MB)
TO FILEGROUP [callRange20w]
go
ALTER DATABASE callbook_dw
ADD FILE
(NAME = N 'filecallRange30w ',FILENAME = N 'e:\callbook_dw\filecallRange30w.ndf ',SIZE = 50MB,MAXSIZE = 100MB,FILEGROWTH = 5MB)
TO FILEGROUP [callRange30w]


------解决方案--------------------
up
------解决方案--------------------
分布式分区视图也许更合理,索引,日志都分开
------解决方案--------------------

------解决方案--------------------
UP,SQL2005一行能保存100K吗,不是顶多8060个字节吗
------解决方案--------------------
study
mack
------解决方案--------------------
我最近接触的系统,数据量在千万级。也在分表中。
500万的数据量如果表结构合理,创建合理的索引,查询应该不是大问题。个人愚见