zoukankan      html  css  js  c++  java
  • 测试拆分比较大SQL Server数据库

    有2个办法拆分比较大的数据库。

    1.重建聚集索引
    2.收缩数据库

    一、准备测试数据

     1  1 create table blocktable(blockno int,binno int,rack int,chipcount int,machineno varchar(10))
     2  2 go
     3  3 
     4  4 insert into blocktable(blockno,binno,rack,chipcount,machineno)
     5  5 select cast((rand(checksum(newid()))*130) as int),cast((rand(checksum(newid()))*10) as int),
     6  6 cast((rand(checksum(newid()))*130) as int),0,'001'
     7  7 from master..spt_values
     8  8 where [type] = 'p' and number <= 10000000000
     9  9 
    10 10 select *
    11 11 from blocktable
    12 12 
    13 13 insert into blocktable select * from blocktable
    14 14 
    15 15 drop table blocktable
    16 16 
    17 17 select @@servername  

    拆分前:

    添加3个数据文件

     此时主数据文件大小不变,ndf文件大小为初始大小100M, 说明数据还没有移动到ndf文件中.


    收缩数据库

    1 USE [testSplitDB]
    2 GO
    3 DBCC SHRINKDATABASE(N'testSplitDB' )
    4 GO


    这个命令没起作用

    下面测试清空rimary DB file
    清空primary DB file遇到错误,原因未知.

    下面测试重建聚集索引.

    重建狙击索引有效

    下面再测试一遍

    测试数据库大小

    加入3个ndf文件


    测试收缩数据库
    ---没有效果

    使用下面的选项移动成功, 并且ndf文件是轮流写,所以ndf文件大小相近. 但是花费时间比较长. 如果操作的是mdf文件, 最后可能报错,提示不能移动所有object, 这个错误可以忽略. 完成后再释放mdf文件的空间就可以了.

     

    收缩完成后结果:

     

    当再次写入数据时,所有文件会被轮流写入

     


    • 第三次测试

    再次确认普通收缩数据库不行,必须选择清空数据库文件才可以移动数据到ndf文件.
    再次确认新建聚集索引有效,收缩的时候选择重新组织页.

  • 相关阅读:
    跨数据库查询——dblink
    进度条
    datagrid 的标题的内容不对应整齐
    ie9table排列不对.td错行,多了一列
    进位方法
    ie9 jscript7 内存不足 页面无响应
    a标签 href触发及传值
    uploadify上传附件 点击保存无效 切F12就可以正常保存
    oracle增加用户密码,cmd导入数据库
    ${}中嵌套${}
  • 原文地址:https://www.cnblogs.com/kala/p/7576377.html
Copyright © 2011-2022 走看看