现在建立一测试表,测试海量数据如何快速查询
建库test
CREATE TABLE [dbo].[datable](
[startip] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[endip] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[province] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[city] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[scompip] [decimal](18, 0) NULL,
[ecompip] [decimal](18, 0) NULL

用bcp方式导入数据1500万条.现在想将表拆分成五个小表datable1,datable2,datable3,datable4,datable5,字段列排序相同,现在想按startip,endip,province,city,scompip,ecompip列进行分区.机器是单cpu单硬盘.有什么样的好方法和建议,关于建立索引,分区视图,分区表,等等,最好能写下详细点的解决办法,比如建文件组,建文件等等,希望实现在同样的字段上建索引能够小表比大表快

解决方案 »

  1.   

    正想知道如何分表,楼主搞定了share一下
      

  2.   

    数据量和我的差不多,我分了36个表,只建了个主建索引, 库是mysql的.现在最头疼的是,如何传到服务器上. 用ftp都快传了一个星期了...
      

  3.   

    2000可以用分区视图,2005可以用分区表。划分的依据是你的查询的条件,并不是划分了就一定带来好处!一般建议选择按scompip或ecompip的值做范围划分,然后在用来划分的字段上建聚集索引。
    但是对于单CPU而言,应该很难获得性能上的好处。
      

  4.   

    再顶一下,分布式分区视图,本地分区视图都建过了,没有用分区键.因为scompip和ecompip有重复的,我是把一个表的数据导入到文本上三十次,相关的province和city字段追加1-30,索引键相同的情况下,查询速度基本一样,是用三台台式机做的分布式查询.如果是双cpu,性能会提升很大吗?再顶一下,寻求一下更好的方法