有經驗的大俠可以直接忽視這篇文章~
這個問題有經驗的人都知道怎麽做,因為我們公司的數據量不大沒有這個需求,也不知道怎麽做實驗
今天求助了QQ群裡的菠蘿大俠,終於知道怎麽做了
我自己會把不明白的問題一定會問到底的,之前在論壇問過這個弱弱的問題,但是由於太弱了,人家隨便答復了一下
然後斑竹就標記為答案了~
移動數據:
1、有表分區
2、沒有表分區
我這裡只討論沒有表分區的情況,表分區的情況還不是很明白
例子
比如:你有三個文件組,其中一個是主文件組
測試腳本:
USE master GO IF EXISTS(SELECT * FROM sys.[databases] WHERE [database_id]=DB_ID('Test')) DROP DATABASE [Test] --1.創建數據庫 CREATE DATABASE [Test] GO USE [Test] GO --2.創建文件組 ALTER DATABASE [Test] ADD FILEGROUP [FG_Test_Id_01] ALTER DATABASE [Test] ADD FILEGROUP [FG_Test_Id_02] --3.創建文件 ALTER DATABASE [Test] ADD FILE (NAME = N'FG_TestUnique_Id_01_data',FILENAME = N'E:\FG_TestUnique_Id_01_data.ndf',SIZE = 1MB, FILEGROWTH = 1MB ) TO FILEGROUP [FG_Test_Id_01]; ALTER DATABASE [Test] ADD FILE (NAME = N'FG_TestUnique_Id_02_data',FILENAME = N'E:\FG_TestUnique_Id_02_data.ndf',SIZE = 1MB, FILEGROWTH = 1MB ) TO FILEGROUP [FG_Test_Id_02]; --4.創建表,這個表的數據存放在[FG_Test_Id_01] 文件組上 CREATE TABLE aa(id INT ,cname NVARCHAR(4000)) ON [FG_Test_Id_01] GO --5.插入數據 INSERT INTO [dbo].[aa] SELECT 1,REPLICATE('s',3000) GO 500 --6.查詢數據 SELECT * FROM [dbo].[aa] --7.創建聚集索引在[FG_Test_Id_02]文件組上 CREATE CLUSTERED INDEX PK_ID ON [dbo].[aa]([id]) WITH(ONLINE=ON) ON [FG_Test_Id_02] GO --8.我們查看一下文件組的邏輯文件名 EXEC [sys].[sp_helpdb] @dbname = TEST -- sysname --9.收縮一下FG_Test_Id_01文件組文件 DBCC SHRINKFILE(FG_TestUnique_Id_01_data,1) --10.你可以選擇drop掉聚集索引,也可以選擇不drop掉聚集索引 DROP INDEX PK_ID ON [dbo].[aa] USE master GO DROP DATABASE [Test]
上面的腳本雖然簡單,但是隱藏了非常多的知識點