MCDBA 数据库设计学习BLOG
发表于:2007-07-02来源:作者:点击数:
标签:
MCDBA 数据库设计学习BLOG 2004-4-14 规划存储管理 1 有且只能有一个主数据文件 2 数据和事务日志永远不能在同一个文件中 3 两个数据库之间不能共享一个文件组 4 当 估算 数据库大小时,应该使用表和索引. 5 无限文件增长只受操作系统和物理磁盘容量的限制. 6
MCDBA 数据库设计学习BLOG
2004-4-14
规划存储管理
1 有且只能有一个主数据文件
2 数据和事务日志永远不能在同一个文件中
3 两个数据库之间不能共享一个文件组
4 当
估算数据库大小时,应该使用表和索引.
5 无限文件增长只受操作系统和物理磁盘容量的限制.
6 文件组,就是把一组文件象单个文件一样的处理,这些文件的组称为文件组,
通过它实现了一个数据库存放在多个磁盘可能,通过练习理解了文件组的概念。
练习:
USE master
GO
Create database ExamNotes
ON Primary
(Name =@#ExamNotes_data@#,filename=@#d:\tes
tdata\ExamNotes_data.mdf@# ,
size=4MB,
MAXSIZE=16MB,
FileGrowth=2mb),
FILEGROUP SU
CCESS
(Name =@#ExamNotes1_data1@#,Filename=@#d:\testdata\ExamNotes1_data1.ndf@#,
size=4Mb,
maxsize=8mb,
filegrowth =500kb),
(Name =@#ExamNotes1_data2@#,Filename=@#d:\testdata\ExamNotes2_data2.ndf@#,
size=4Mb,filegrowth=10%)
log on(NAME =@#ExamNotes1_Log@#,
filename=@#d:\testdata\ExamNotes_Log.ldf@#,
size=4Mb,maxsize=16mb)
向数据库中添加由两个文件组成的文件组
ALTER DATABASE Exam
ADD FILEGROUP ExamFG1
GO
ALTER DATABASE exam
ADD FILE
( NAME = exam_data3,
FILENAME = @#d:\testData\exam_data3.ndf@#,
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = exam_data4,
FILENAME = @#d:\testData\exam_data4.ndf@#,
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
TO FILEGROUP ExamFG1
ALTER DATABASE exam
MODIFY FILEGROUP examFG1 DEFAULT
GO
欲删除文件组,必先删除该组文件
ALTER DATABASE EXAM
REMOVE FILE exam_data4
ALTER DATABASE EXAM
REMOVE FILE exam_data3
ALTER DATABASE EXAM
REMOVE FILEGROUP EXAMFG1
一个有用的SP:
EXEC sp_spaceused USERTABLENAME
查出某个表的记录数和使用的空间大小,因为在实际应用中会出现某个表超大的情形.
在数据库中为表指定文件组的用法如ON后面子句,注意ON [PRIMARY]中的[PRIMARY]是主文件组而非主键.
CREATE TABLE [ACC_PAYMETHOD_MSTR] (
[PAYMETHODID] [nvarchar] (10) COLLATE
SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PAYMETHODNAME] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[STAMPUSERNAME] [STAMPUSERNAME] NULL ,
[STAMPDATETIME] [STAMPDATETIME] NULL
) ON [PRIMARY]
相应的改变默认文件的语法为:
ALTER DATABASE <Database Name>
MODIFY FILEGROUP <Filegroup name> DEFAULT
确保数据完整性
实现约束的6种
Alter table <table name>
Add constraint <constraint name>
<constraint type><constraint define>
1 Unique Key
alter table product
add constraint uk_product
UNIQUE (SupplierID,Productname)
2 Primary Key
Alter table product
add constraint pl_product
PRIMARY KEY (ProductID)
3 Foreign Key
Alter table product
add constraint fk_product_suppliers
Foreign KEY (ProductID) references suppliers (ID)
4 CHECK 约束
Alter table product
add constraint DF_product_UNITSinstock
CHECK (Unitsinstock >=0 or UnitsINStock is NULL)
5 NOT NULL 约束
Alter table product
ALTER COLUMN DISCONTINUED BIT NOT NULL
6 默认约束
ALTER TABLE PRODUCT
ADD CONSTRAINT DF_PRODUCTS_UNITPRICE
DEFAULT 0 FOR UNITPRICE
原文转自:http://www.ltesting.net