|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
提供用于管理、检查、优化数据库操作的管理工具。条记|初学
初学T-SQL之ON[PRIMARY]
这些天甚么都没做。年前仿佛有忙不完的事,年后了结又有了好逸的偏差。。。。
明天才入手下手看黉舍实行引导的数据库开辟实例。之前一向没偶然间来看。。。
创立表的语句中,最初总来一句on[primary],这是甚么意义?
翻翻联机丛书。在CREATETABLE的语法下仿佛没有找到。硬着头皮看下往,终究分明了一些。
写出来吧。侯捷先生说,宣布是最好的影象。:)
在CREATETABLE的语法中有如许一句可选语法项目:
[ON{filegroup|DEFAULT}]
用来指定存储表的文件组。
假如指定filegroup,则表将存储在指定的文件组中。数据库中必需存在该文件组。假如指定DEFAULT,大概基本未指定ON参数,则表存储在默许文件组中。
(DEFAULT并非关头字。DEFAULT是默许文件组的标识符并需对其举行定界,如ON"DEFAULT"、ON[DEFAULT]。)
ON[PRIMARY]是暗示表是创建在主文件组上。PRIMARY暗示主文件组。假如没有指定默许文件组,则主文件组是默许文件组,ON[PRIMARY]也能够省略失落了。
由数据库说开来。Microsoft®SQLServer™2000利用一组操纵体系文件映照数据库,也能够说将数据库映照到一组操纵体系文件上(看你怎样了解了)。数据库中的一切数据和工具(如表、存储历程、触发器和视图)都存储在操纵体系文件(数据库文件):次要数据文件、主要数据文件和事件日记文件中。
1.次要数据文件
该文件包括数据库的启动信息,并用于存储数据。是数据库的出发点,指向数据库中文件的别的部分。每一个数据库都有一个次要数据文件。次要数据文件的保举文件扩大名是.mdf。
2.主要数据文件
这些文件含有不克不及置于次要数据文件中的一切数据即包括除次要数据文件外的一切数据文件。有些数据库大概没有主要数据文件,而有些数据库则有多个主要数据文件。(假如主文件能够包括数据库中的一切数据,那末数据库就不必要主要数据文件。有些数据库大概充足年夜故必要多个主要数据文件,或利用位于分歧磁盘驱动器上的帮助文件将数据扩大到多个磁盘。)主要数据文件的保举文件扩大名是.ndf。
3.事件日记文件
该数据库的日记信息。每一个数据库都必需最少有一个日记文件。日记文件的保举文件扩大名是.ldf。
文件组
出于分派和办理目标,能够将数据库文件分红分歧的文件组。文件组是SQLServer2000数据文件的一种逻辑办理单元。SQLServer中一个或多个文件的定名汇合,它组成分派或用于数据库办理的单个单位。在初次建数据库,大概今后将更多文件增加到数据库时,能够创立文件组。文件组不克不及自力于数据库文件创立。文件组是在数据库中对文件举行分组的一种办理机制。
有两品种型的文件组:次要文件组和用户界说文件组。(能够说,数据库由一个主文件组和恣意用户界说的文件组构成。)
1.主文件组(PRIMARY)
用户界说文件组默许文件组同为文件组的一品种型。
其包括次要数据文件和任何没有明白指派给别的文件组的别的文件。体系表的一切页均分派在主文件组.
2.用户界说文件组
用户界说文件组是在CREATEDATABASE或ALTERDATABASE语句中,利用FILEGROUP关头字或在SQLServer企业办理器内的"属性"对话框指定的文件组。
另:默许文件组(DEFAULT文件组)
文件组的一品种型,其包括在创立时没有指定文件组的一切表和索引的页。在每一个数据库中,每次只能有一个文件组是默许文件组。假如没有指定默许文件组,则默许文件组是主文件组。可用ALTERDATABASE语句变动默许文件组。经由过程变动默许文件组,创立时没有指定文件组的任何工具都被分派到新默许文件组中的数据文件。但是,体系工具和表仍旧保存在PRIMARY文件组内,而不是新默许文件组。(每一个数据库中都有一个文件组作为默许文件组运转。当SQLServer给创立时没无为其指定文件组的表或索引分派页时,将从默许文件组中举行分派。一次只能有一个文件组作为默许文件组。db_owner流动数据库脚色成员能够将默许文件组从一个文件组切换到另外一个。假如没有指定默许文件组,则主文件组是默许文件组。)
注:SQLServer2000在没有文件组时也能无效地事情,因而很多体系不必要指定用户界说文件组。在这类情形下,一切文件都包括在主文件组中,并且SQLServer2000能够在数据库内的任何地位分派数据。文件组不是在多个驱动器之间分派I/O的独一办法。
附:
.为何要创建文件组
创建文件组有两个目标。
q一是能够更好地分派和办理存储空间,经由过程把持在特定磁盘驱动器上安排数据和索引来进步数据库的功能。
q二是因为操纵体系对物理文件的巨细举行了限定,以是当某个磁盘上的数据文件凌驾单个文件同意的最年夜值时,可使用文件组中存
贮在其他驱动器上的数据文件持续扩大存储空间。
.数据文件和文件组的利用划定规矩
SQLServer2000中的数据文件和文件组的利用划定规矩包含:
q数据文件或文件组不克不及由一个以上的数据库利用。
q数据文件只能是一个文件组的成员。
q数据文件和日记文件不克不及属于统一文件或文件组。
q日记文件不克不及属于任何文件组。
q只要文件组中的一切数据文件都没有空间了,文件组的文件才会主动增加。
.文件组的事情道理
文件组对组内的一切文件都利用按比例添补战略。当将数据写进文件组时,SQLServer2000依据文件中的可用空间量将必定比例的数据写进文
件组的每一个文件,而不是将一切的数据先写满第一个文件,接着再写进下一个文件。比方,假如文件1有100MB的可用空间,文件2有200MB的可
用空间,则从文件1平分配一个盘区,从文件2平分配两个盘区,依此类推。如许,两个文件几近同时填满。
一旦文件组内的一切文件已满,SQLServer2000就主动地接纳轮回体例一次扩大一个文件,以包容更多的数据(假定命据库设置为主动增加)
。比方,某个文件组由3个文件构成,它们都设置为主动增加。当文件组中的一切文件的空间用完时,只扩大第一个文件。当第一个文件已满,
不克不及将更多的数据写进该文件组时,扩大第二个文件。当第二个文件已满,不克不及将更多的数据写进该文件组时,扩大第3个文件。假如第3个文
件已满,不克不及将更多的数据写进该文件组,那末再次扩大第一个文件,以此类推。
正时因为文件组的这类特征,同意跨多个磁盘、多个磁盘把持器或RAID(便宜磁盘冗余阵列)体系创立数据库,可进步数据库功能。比方,如
果盘算机中有4个磁盘,那末能够创立一个由3个数据文件和一个日记文件构成的数据库,每一个磁盘上安排一个文件。在对数据举行会见时,四
个读/写磁头能够同时并行地会见数据,从而减速数据库操纵。
别的,文件和文件组同意数据结构,能够在特定的文件组中创立表。由于特定表的一切输出/输入都能够定向到特定的磁盘,以是功能得以改良
。比方,能够将最经常使用的表放在一个文件组中的一个文件中,该文件组位于一个磁盘上;而将数据库中别的的不常会见的表放在另外一个文件组
中的别的文件中,该文件组位于第二个磁盘上。
.怎样利用文件组的倡议
q年夜多半数据库在只要单个数据文件和单个事件日记文件的情形下能够很好地运转。
q假如利用多个文件,请为附加文件创立第二个文件组,并将其设置为默许文件组。如许,主文件将仅包括体系表和工具。
q若要取得最好功能,请在尽量多的可用当地物理磁盘上创立文件或文件组,并将争取空间最剧烈的工具置于分歧的文件组中。
q利用文件组以同意将工具安排在特定的物理磁盘上。
q将在统一连接查询中利用的分歧表置于分歧的文件组中。因为接纳并行磁盘输出/输入春联接数据举行搜刮,以是功能将得以改良。
q将最常会见的表和属于这些表的非会萃索引置于分歧的文件组上。假如文件位于分歧的物理磁盘上,因为接纳并行输出/输入,以是
功能得以进步。
q不要将日记文件与别的文件和文件组置于统一物理磁盘上。
MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。 |
|