CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

创建千万级记录的数据库,该注意什么?请各位高手给点建议.不胜感激.

楼主rex_wang(王)2002-11-23 16:28:37 在 MS-SQL Server / 疑难问题 提问

我在做一个数据库,数据处理能力的要求不高,只是数据量太大,一年超过1000万条,我从未作过这么大数据量的数据库,不知该注意什么,请各位高手不吝赐教!在此多谢! 问题点数:100、回复次数:44Top

1 楼pengdali()回复于 2002-11-23 16:42:57 得分 5

一定要建簇索引!  
  在查循时最好扫描簇索引!  
  每月进行完全备份!  
  建立统计表,尽量减少随时完全统计!Top

2 楼hjhing(winding)回复于 2002-11-23 16:46:25 得分 2

1:这1000万数据都是长用数据吗  
      如果不是请尽量分成历史数据表和常用数据表  
      如果都是常用数据  
      也建议按类型分成多表  
      将数据分散  
      这样对你数据操作时候的性能会有所保证  
   
  2:create   index  
   
   
   
  Top

3 楼pengdali()回复于 2002-11-23 17:16:44 得分 5

建立数据仓库是最好的!Top

4 楼Steve_csdn()回复于 2002-11-23 20:01:21 得分 2

1.认真建索引  
  2.可以考虑流通库和历史库结合的方案Top

5 楼xuyi3300(阿三)回复于 2002-11-23 20:41:29 得分 2

按常用表和不常用表对数据库分区  
  Top

6 楼rex_wang(王)回复于 2002-11-24 18:16:10 得分 0

我的数据不常用,而且都是短数据,请各位高手继续指点,12月1日结帖.Top

7 楼hn_ly(游鱼)回复于 2002-11-24 18:27:39 得分 2

肯定是要建索引的,而且不能建的太多,最好建一个簇索引再建几个非簇索引以减少数据表的热点,  
  把数据表分成二个表,再建一个视图来查询Top

8 楼colderboy(colderboy)回复于 2002-11-26 08:05:45 得分 0

对不起,问个非常低能的问题,簇索引如何创建????Top

9 楼pvistely(晒屁屁)回复于 2002-11-26 09:42:54 得分 0

gzTop

10 楼THXK(THXK)回复于 2002-11-26 10:18:51 得分 0

最好买正版,不行的时候,还可以骂骂微软解恨!Top

11 楼caixiaofei(天天呆在这)回复于 2002-11-26 10:31:29 得分 2

CREATE   [   UNIQUE   ]   [   CLUSTERED   |   NONCLUSTERED   ]   INDEX   index_name    
          ON   {   table   |   view   }   (   column   [   ASC   |   DESC   ]   [   ,...n   ]   )      
  [   WITH   <   index_option   >   [   ,...n]   ]      
  [   ON   filegroup   ]    
   
  <   index_option   >   ::=      
          {   PAD_INDEX   |    
                  FILLFACTOR   =   fillfactor   |    
                  IGNORE_DUP_KEY   |    
                  DROP_EXISTING   |    
          STATISTICS_NORECOMPUTE   |    
          SORT_IN_TEMPDB        
   
  }  
  听说簇索引在增加,删除的时候会影响速度。有没有这个问题Top

12 楼CrazyFor(冬眠的鼹鼠)回复于 2002-11-26 11:14:08 得分 0

不建议用SQL   SERVER,百万级的处理还是可以的,但要是经常处理的数据控制不在百万级就最好不用SQL   SERVERTop

13 楼sword_hero(sword)回复于 2002-11-26 11:44:24 得分 0

55Top

14 楼byrybye(阿水)回复于 2002-11-26 12:39:21 得分 2

换硬件,真的,  
  我现在就是用SQL处理大量数据。  
  效率我是   想不出什么办法能提高。  
  楼上个为的方法,我试过,  
  但   并不明显。  
  升级硬件唯一有效的方法。  
  最后是4路CPU就可以了,Top

15 楼Nizvoo()回复于 2002-11-26 13:28:13 得分 0

学习Top

16 楼ziyue(紫月)回复于 2002-11-26 15:07:57 得分 0

要4路CPU呀。Top

17 楼coolbily(Gavin Zhang)回复于 2002-11-26 16:04:04 得分 2

oracle   多线程,建议         >=8     cpuTop

18 楼byrybye(阿水)回复于 2002-11-26 16:05:06 得分 2

我认为要4路,应该可以了,  
  应为我现在是2路800,  
  好象还挺吃力,当然,  
  它还承担别的事Top

19 楼rex_wang(王)回复于 2002-11-26 18:35:51 得分 0

那我的成本岂不是要高出很多!!Top

20 楼Hi_greece(无招胜有招)回复于 2002-11-27 08:44:09 得分 5

分成业务数据库和统计数据库,统计数据周期性更新  
   
  注意:  
   
  1.两个数据库数据的一直性  
  2.建立索引  
  3.master数据库优化  
   
  硬件:  
  我就不说了吧,有多少银子,就看着办把  
  Top

21 楼Drate(小虫(好好学习,天天向上))回复于 2002-11-27 08:57:53 得分 2

还是换成ORACLE的数据库吧,ORACLE在处理大容易数据的时候优势就会体现出出来了!Top

22 楼sdzjx(Mr zhu)回复于 2002-11-27 09:38:02 得分 2

1、可以考虑分区视图  
  2、优化索引  
  3、如果更新频繁,注意索引不要太多  
  Top

23 楼chfhy(春风化雨)回复于 2002-11-27 10:26:52 得分 0

分区视图能够像oracle分区表功能吗  
  Top

24 楼waxmly(我爱喜玛拉雅)回复于 2002-11-27 10:31:26 得分 0

不好意思,问一个比较弱智的问题  
   
  你们常说的数据库有多少记录,是怎么判断的?  
  或者说是指数据库中记录最多的一个表的记录数还是数据库中所有表的记录数目的总和?Top

25 楼Chinatosun(继续努力 UML系统分析 )回复于 2002-11-27 11:30:50 得分 2

升级硬件是一种方法,管理好DBMS   和   编好程序也很重要。Top

26 楼hawk_yin(hawk)回复于 2002-11-27 15:12:40 得分 0

gz  
  Top

27 楼hsl616(hsl18)回复于 2002-11-27 21:00:05 得分 0

我是一个计算机新手,谁能告我SQL   service是怎么回事。怎么使用它做东西。  
  一个软件象(学生管理系统,商店管理系统等)。Top

28 楼zjgood(flash)回复于 2002-11-27 21:23:47 得分 3

我还是同意对数据进行分散,这样能很好的提高查询效率Top

29 楼zbc(修身养息,百战不怠)回复于 2002-11-27 21:57:20 得分 0

这么大的数据量??学习学习!!Top

30 楼china_hfz(江夏)回复于 2002-11-27 22:24:29 得分 0

听说项新集团的数据量是每天1.5G的生长,用的也是SQL   SERVER,不过它的服务器是带有18CPU的。Top

31 楼tpwang(ping)回复于 2002-11-27 23:49:48 得分 15

一:首先将数据的进行合理分段,   可将其分为历史与常用表;  
      再将数据纵向分段,即按年或月分段(比较简单,但性能提升不大),或将数据横向分段(比较复杂,但性能提升具大),即按某个关键字(该关键字与产生的时间无关)进行分段;  
  二:数据分段后必须建立合理的索引.  
  三:为进一步提高处理性能,可将分段后的数据存放在多台服务器上,用外部程序按分段逻辑去分别调用,或用MS的DTS进行分布调用或用MS-SQL内部的远程服务器调用进行关联表连接进行调用。  
  四:因为你用的是MS-SQL,只能使用PC服务器了,提高PC服务器处理性能,光靠加CPU是不行的,海量数据的简单运算主要是提磁盘的IO能力,应使用高性能的存储设备是关键。  
   
  Top

32 楼jery_lee(U2-G2000)回复于 2002-11-28 00:03:06 得分 0

按照第三范式!设计!Top

33 楼kindtoadsd(南阳山人)回复于 2002-11-28 08:28:41 得分 0

我用的是MS   SQL7.0,   一个表超过10万条记录速度就慢的不行。Top

34 楼yzt001(yzt001)回复于 2002-11-28 09:20:53 得分 0

gz  
  Top

35 楼Ericsson()回复于 2002-11-28 11:17:37 得分 0

gz  
  Top

36 楼OSNC_17()回复于 2002-11-28 11:24:14 得分 0

注意招聘信息,你随时可能炒掉。Top

37 楼czzw(山水)回复于 2002-11-28 11:42:31 得分 5

我在做的东西和你类似的,其实也就是如何规划和组织相关的数据结构,这么大的记录集,完全按照所谓的范式去做基本上是不合适的。因为这么多的数据集不会被一次查出,而且肯定是多年累计得出的结果。并且数据不会是实时生成的东西。Top

38 楼herocloud(herocloud)回复于 2002-11-28 13:55:31 得分 15

内模式上:分成若干存储块,不同存储块最好存储在不同的IO设备,利用不同的IO设备读取数据的并发。  
   
  模式上:将数据纵向,横向分割。(可根据“时间”,“主键”,“逻辑一致”视情况定)  
   
  外模式上:可自建分区表,只查询指定区域的数据。  
   
  Top

39 楼rex_wang(王)回复于 2002-11-28 20:04:20 得分 0

多谢,多谢.请各位继续关注.Top

40 楼coolbily(Gavin Zhang)回复于 2002-11-29 08:34:04 得分 0

关注ingTop

41 楼outspace(不舍)回复于 2002-11-29 09:15:28 得分 15

建立索引的字段最好和查询统计的条件字段一样,否则你的查询统计会让人感觉象死机。我以前处理过几百万记录的,索引没有建正确,查询统计一次要好几个小时,根本受不了,后来请教高人重新建立索引后性能数量级提高。多研究下索引吧;  
      另外锁的问题,如果你就只是查询统计,建议你还是用   NOLOCK方式;  
      表间的关联越少性能越好,不要为了做到××范式把表之间做得千丝万缕的,存储空间是不值钱的,要增加很容易,而CPU很难在已经有的机器上增加,4路已经是普通客户能够接受的顶线了,用空间换时间、性能也是一种很好的策略。  
      数据库用MSSQL7、2000没有问题,不要怀疑MS连这点都做不到,主要还是考虑自己的应用,不会做你用DB2、ORACLE一样歇菜。当然更好的是DB2、ORACLE(可以放在UNIX下跑啊,而最好的机器现在好像都是UNIX系列的吧,高端服务器现在也是UNIX下为主)。Top

42 楼5lin()回复于 2002-11-30 08:31:37 得分 0

to   outspace  
      不知道您试过mssql2000上千万记录后作一次查询的时间(经过你的方法进行了优化)。我们目前正在论证一个这样级别的项目,不知能上mssql2000.Top

43 楼Steve_csdn()回复于 2002-11-30 23:37:25 得分 5

当然能了,因为我们这里这样级别的项目很多用的是sybase,  
  mssql2000不会比sybase差很多吧,同样是4路至强。  
  Top

44 楼myserver(Wind)回复于 2002-12-01 12:19:19 得分 5

我到认为,数据库的运行情况光靠硬件升级是行不通的,我们公司做得his系统用的也是sql   server数据库,数据量一年同样超过1000万条。在V1.0时前台速度慢得让患者直骂,后台的查询速度让我们自己都受不了,后来数据库重新设计后到了V2.0时,以前的问题也都迎刃而解了,数据设计的学问真的很多,很多优化都是在日常工作中总结的,提议斑竹开个帖子,进行数据库优化的讨论,以前好像也有过,直到的请把地址登出来Top

相关问题

  • 创建数据库!!!!!!!!!
  • 创建数据库
  • 怎样根据数据库中的记录动态创建组建
  • 如何根据数据库中记录数来动态创建控件
  • 数据库记录集
  • 数据库记录问题
  • 数据库记录删除
  • 如何用VB语名创建SQL-Server存储过程(插入记录)、创建访问数据库的用户
  • 创建数据库文件
  • 创建数据库失败!!!

关键词

  • sql2000
  • 数据库
  • 数据
  • 查询
  • 性能
  • 服务器
  • 视图
  • 硬件
  • mssql
  • 优化

得分解答快速导航

  • 帖主:rex_wang
  • pengdali
  • hjhing
  • pengdali
  • Steve_csdn
  • xuyi3300
  • hn_ly
  • caixiaofei
  • byrybye
  • coolbily
  • byrybye
  • Hi_greece
  • Drate
  • sdzjx
  • Chinatosun
  • zjgood
  • tpwang
  • czzw
  • herocloud
  • outspace
  • Steve_csdn
  • myserver

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo