SQLserver笔记.doc_第1页
SQLserver笔记.doc_第2页
SQLserver笔记.doc_第3页
SQLserver笔记.doc_第4页
SQLserver笔记.doc_第5页
免费预览已结束,剩余64页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQLServer2000课堂笔记整 理:曲慧星2004年9月25日第一章SQLServer2000简介SQLServer2000介绍数据:是描述事物的符号记录。表示型式:可以是文字、图像、视频、声音数据库:有组织、有结构,存储在计算机内部的可共享的数据集合。简称DB(date base)安装SQLServer2000硬件要求CPU:奔腾MMX166以上内存:win2000下256MB、NT下64MB硬盘空间:最小:80MB最大250MB对SQLServer2000进行优化SQLServer2000最多支持32个CPU扩展服务器进行优化使用RAID级别的磁盘子系统增加物理内存,使其在缓存区域中读取大量数据网络的带宽和网卡的速率对SQLServer2000的吞吐量和性能产生影响对低版本SQLServer进行升级SQLServer7.0升级至SQLServer2000 安装默认实例(升级现存安装)安装命名实例(保留现存安装)SQLServer6.5升级至SQLServer2000 安装默认实例或命名实例(两者都创建新实例)SQLServer6.0升级至SQLServer2000 先升级至6.5或7.0版本,再进行升级升级后的检查工作服务、管理工具数据库文件、文件夹启动选项默认安全模式在命令行模式下调试服务默认实例:net start | stop | pause | continue mssqlserver(服务) | mssqlserveragent (代理)命名实例: net start | stop | pause | continue mssql$instancename使用图形化工具连接SQLServer2000企业管理器、查询分析器 “sa”为SQLServer2000管理员帐号使用ospl命令建立SQLServer连接故障的排除查阅错误消息查阅sqlstp.log日志文件,此文件位于%systemroot%winnt目录下查看日志信息测试网络连接推荐方案使用专门为数据库使用的写缓存控制器使用与用户组织一致的排序规则使用专门的域用户登录帐号注册所有准备利用SQLServer企业管理器进行管理实例为SQLServer的登录指定登录密码第二章 SQLServer概述SQLServer特性是一种关系型数据库系统与活动目录集成 安装SQLServer时服务器及其属性自动注册到活动目录中。安全性 SQLServer与win2000的安全系统集成,用户只要一组用户名和密码就可以访问SQLServer2000。多处理器支持 支持win2000的对称处理支持事件查看器 SQLServer能够将某些消息写给应用程序日志、系统日志、安全日志中。与IIS服务器集成 利用IIS服务器,IE可以通过HTTP服务访问SQLServer群集 支持多个服务器行成的一个群集(高级服务器版特性)数据库类型system databases系统数据库 master:通过跟踪某些信息、用户帐号、配置环境变量和系统错误消息等,从整体控制SQLServermodel:为创建新用户数据库提供模板 temdb:为临时表和其他临时表存储需要提供存储区域 msdb:为调度信息和作业历史提供存储区域 distribution:为复制过程中所用的历史和事务数据提供存储区域user databases 用户数据库 pubs:提供一个学习工具的示例数据库 northwind:提供一个学习工具的示例数据库数据库对像数据库对象分为:表、数据类型、约束值、默认值、规则、索引、视图、自定义函数存储过程、触发器引用SQLServer20002000对象完全限定名server1.databaes.owner.object例:SELECT * FROM qhx.northwind.dbo.employees切换数据库 use例:USE northwind系统表sysloginsmaster每个连接SQLServer20002000的登录帐号都占相应行sysmassagesmaster每个SQLServer2000所返回的系统错误和警告,都占相应行sysdatabasesmasterSQLServer2000中的每个数据库都占相应行sysusers 全部每个win2000用户、组、每个SQLServer2000用户或SQLServer2000角色都占相应行。元数据检索系统存储过程 EXEC sp_help Employees系统和元数据函数 SELECT user_name查看用户名(10) SELECT user_id信息模式视图 SELECT * FROM INFORMATION_SCHEMA .TABLES角色类型固定服务器级别角色 服务器级别的组管理特权固定数据库角色数据库级别的组管理特权用户自定义数据库角色组织内部雇员分组的组管理特权第三章 Transact-SQL 编程语言Transact-SQL 编程语言美国国家标准协会(ANSI)和国际标准组织(ISO)为SQL定义了标准。能够在任何级别与ANSI-SQL兼容的产品中运行。Transcat-SQL 同时还包含几种能增强性能功能的扩展。Transact-SQL语言的类型数据定义语言(DDL)语句:生成对象数据控制语言(DCL)语句:决定看到或更改数据数据操作语言(DML)语句:查询或更改数据数据定义语言(DDL)语句定义数据库对象CREATE object_nameALTER object_nameDROP object_name必须有相应的权限数据控制语言(DCL)语句设置和更改权限GRANTDENYREVOKE必须有相应的权限数据操作语言(DML)语句DML 语句操作数据库中的数据SELECTINSERTUPDATE DELETE DRI必须有相应的权限批处理命令GO把GO解释为向SQL Server发出Transact-SQL语句批处理的一种信号。用户定义局部变量的作用范围限于一个批处理内,在GO命令后就不能再用这个变量了。EXEC用于执行用户自定义的函数、系统存储过程、用户字定义存储过程或一个扩展存储过程。在一个Transact-SQL批处理内部,也可能控制一个字符串的运行。注释语句嵌入行内的注释语句块注释语句 /*开始*/结束标识符对象名用于一些对象名,例如: 表,视图,列,存储过程标准标识符第一个字符必须是字母,a-z 或 A-Z第一个字符后可以是数字、字母或符号 (、$ 或 _ )当标识符的第一个字符是符号时,代表它有特殊用处:限定标识符当对象名字包含空格时;当保留关键字被用作对象名或对象部分的名字时;用中括号 ( ) 或双引号 ( )标识符的命名原则起短一些的名字尽量使用有意义的名字使用简单明了的命名习惯使用能够区分出对象类型的标识符Views Table保持对象名和用户名的唯一性Sales table and sales role数据类型数字型唯一标识符 (GUID)SQL 变量日期型字符型二进制型图像和文本表游标用户自定义数据类型变量使用 DECLARE 语句定义一个局部变量 declare qhx char(20)使用 SET 语句为这个局部变量赋值 set qhx=ompx变量前带有代表它是局部变量;代表是全局变量USE northwind DECLARE lname CHAR(20)SET lname = DodsworthSELECT lastname, firstname, title FROM northwind.employees WHERE lastname =lname系统函数标量函数:对单个值进行运算并返回单一值聚集函数:对集合中的值运算并返回一个值行集函数:可以用作表来使用表达式是各种符号和对单个数据进行操作的运算符的组合表达是结果的数据类型由表达式中的成员决定流控制语言语句级BEGIN END blockIF ELSE blockWHILE constructs行级CASE expression保留关键字SQL Server 为自己保留了一些专用的关键字Transact-SQL 关键字ANSI SQL-92 关键字ODBC 保留关键字避免使用保留关键字运算符算数运算符比较运算符逻辑运算符第四章使用 Transact-SQL查询工具SQL Server 查询工具一个方便的文本编辑器代码颜色转换带有网格或文本输出的多重查询窗口执行脚本的一部分查询执行的信息使用 SQL Query Analyzer 中的对象浏览工具SQL Query Analyzer 工具可以树型浏览数据库中的对象使用对象浏览,你能够:为对象生成脚本执行存储过程打开表修改数据库中的对象使用 Transact-SQL 模板使用 osql 命令行工具运行 osql 命令行工具 OSQL -E :连接到信任服务器上。 OSQL E i “路径名文件名.sql”: 传入一个角本文件 go:执行上一个GO后输入的语句 reset:消除已经输入的语句 ed:调用编辑器 !command:运行一个操作系统命令 quit或exit:退出OSQL使用交互模式使用脚本运行模式使用扩展的脚本命令动态构造语句使用 EXECUTE 动态生成字符符号、变量值例:DECLARE dbname VARCHAR(30) , tblname VARCHAR(30) SET dbname = northwind SET tblname = productsEXECUTE (use + dbname + SELECT * FROM + tblname )执行的时候必须指定值和变量动态生成的变量和临时表,只在语句运行的过程中有效使用批一个或多个 Transcat-SQL 语法一起提交用 GO 语句定义一个批批中不能同时出现的语句CREATE PROCEDURECREATE VIEWCREATE TRIGGERCREATE RULECREATE DEFAULT使用脚本脚本是以文本方式保存的一个或多个 Transcat-SQL 语句,扩展名为.sql脚本:能够保存语法能够被任何文本编辑器编辑能够用 osql 实用工具执行当你想重新生成数据库或数据对象,或想重复执行某些语句时最佳方案当你在图形式交互的环境下工作,可以选择SQL Analyzer(查询分析器)使用对象浏览工具来查找表和字段名使用OSQL工具运行批文件或执行重复性任务,或进行调度把经常使用的T-SQL语句保存在文件中第五章数据查询使用 SELECT 语句从表中查询数据使用 SELECT 语法指定列:USE northwindSELECT employeeid,lastname,firstname,titleFROM employees使用 WHERE 子句指定行USE northwindSELECT employeeid,lastname,firstname,titleFROM employeesWHERE employeeid = 5使用 SELECT 语法查询指定的行WHERE 子句指定行FROM 子句指定表过滤数据使用比较操作符 、=、=、!=使用字符串比较符使用逻辑操作符查询在一定范围内的值使用值的列表作为搜索条件查询未知的值使用字符串比较符通配符%:0或多个字符串_:任何单个的字符:在指定区域或集合内的任何单个字符:不在指定区域或集合内的任何单个字符例如:LIKE BR%:一个以BR开头的字符串。LIKE Br%:一个以Br开头的字符串。LIKE %een:一个以een结尾的字符串。LIKE %en%:一个包含en的字符串。LIKE _en:一个以en结尾的、共含三个字符的字符串。LIKE CK%:一个 C 或 K 开头的字符串。LIKE S-Ving:一个含四个字符的字符串,此字符串以ing结尾,开头字符位于S-V之间。LIKE MC%:一个以M开头、且第二个字符不是C的字符串。例子:SELECT * FROM table10WHERE lastname like aa_% ESCAPE 使用逻辑操作符AND:返回满足所有条件的行;OR:返回满足任一条件的行;NOT:返回不满足表达式的行。查询一定范围内的值BETWEEN、NOT BETWEEN 例子:USE northwindSELECT * FROM employeesWHERE employeeid between | not between 2 and 8使用值的列表作为搜索条件IN、NOT IN例子:USE northwindSELECT * FROM employeesWHERE employeeid in (1,3,5,6)查询未知的值IS NULL、IS NOT NULLUSE northwindSELECT * FROM employeesWHERE region IS null | not null格式化结果集排序数据ORDER BY 升序(ASC)、降序(DESC)、可以用sp_helpsort看到安装过程中被定义的数据排序顺序。SQL缺省按升序(ASC)。USE northwindSELECT productid,productname,categoryid,unitprice FROM productsORDER BY 3, 4 DESCGO消除重复行SELECT DISTINCT country FROM suppliers ORDER BY country改变字段名字使用符号SELECT firstname,lastname,Identification number: , employeeid FROM employees查询的工作原理解释:检查语句的语法是否正确。解析:校验语句中出现的对象名是否有效;同时检查对该对象的权限。优化:检查是否能够使用索引。编译:把查询翻译为一个可执行的形式。执行:把编译过的查询要求提交并进行处理。自动缓存特殊的批自动参数化影响性能的注意事项尽量使用正逻辑而不使用非逻辑非逻辑 (NOT BETWEEN、NOT IN、 NOT NULL)尽量避免使用 LIKE 查询尽量在搜索条件中使用精确的比较或值的域使用 ORDER BY 子句会降低查询速度第六章数据分组和汇总使用 TOP n 列出表前 n 个记录在结果集中只列除 n 行USE northwindSELECT TOP 3 * FROM employees使用 ORDER BY 子句指定值的区域使用 WITH TIES 显示相同记录USE northwindSELECT TOP 16 WITH TIES * FROM productsORDER BY categoryID DESC使用含空值字段的聚集函数AVG平均值COUNT计数COUNT(*)计数,所有的MAX最大值MIN最小值SUM求和多数聚集函数忽略空值COUNT(*) 功能包含所有记录,包含空值使用 GROUP BY 子句USE northwindSELECT productid, SUM(quantity)AS total_quantityFROM orderhistWHERE productid=2GROUP BY productid联合使用 HAVING 和 GROUP BY 子句USE northwindSELECT productid, SUM(quantity)AS total_quantityFROM orderhistWHERE productid=2GROUP BY productidHAVING SUM(quantity)=30在结果集中生成汇总值联合使用 GROUP BY 子句和 ROLLUP 操作符USE northwindSELECT productid, orderid, SUM(quantity) AS total_quantityFROM orderhistGROUP BY productid, orderidWITH ROLLUPORDER BY productid, orderid联合使用 GROUP BY 子句和 CUBE 操作符USE northwindSELECT productid, orderid, SUM(quantity) AS total_quantityFROM orderhistGROUP BY productid, orderidWITH CUBE ORDER BY productid, orderid使用 GROUPING 函数SELECT productid, GROUPING (productid), orderid, GROUPING (orderid),SUM (quantity) AS total_quantityFROM orderhistGROUP BY productid, orderidWITH CUBE ORDER BY productid, orderid使用 COMPUTE 和 COMPUTE BY 子句USE northwindSELECT productid, orderid, quantity FROM orderhistORDER BY productid, orderidCOMPUTE SUM (quantity)推荐方案为了改善查询操作的性能,索引通常会对字段进行汇总操作尽量避免在含有空值的字段上使用聚集函数使用 ORDER BY 子句为结果集中的记录排序如果可以,尽量使用 ROLLUP 操作符,因为它比CUBE效率高第七章多表连接使用表的别名例一:不使用表的别名USE joindbSELECT buyer_name, sales.buyer_id, qtyFROM buyers INNER JOIN salesON buyers.buyer_id = sales.buyer_id例二:使用表的别名USE joindbSELECT buyer_name, s.buyer_id, qtyFROM buyers as b INNER JOIN sales as sON b.buyer_id = s.buyer_id从多个表结合数据连接概述从多个表中选择指定的字段:关键字 JOIN 指定要连接的表,以及这些表连接的方式;关键字 ON 指定这些表共同拥有的字段查询两个或多个表并生成单个结果集:在表的主键和外部键指定连接的条件如果表中有多个字段组成的主键,你必须在ON子句中引用所有这些字段使用内连接USE joindbSELECT buyer_name, sales.buyer_id, qtyFROM buyers INNER JOIN salesON buyers.buyer_id = sales.buyer_id使用外连接USE joindbSELECT buyer_name, sales.buyer_id, qtyFROM buyers LEFT OUTER JOIN salesON buyers.buyer_id = sales.buyer_id使用交叉连接USE joindbSELECT buyer_name, qtyFROM buyers CROSS JOIN sales连接两个以上的表SELECT buyer_name, prod_name, qtyFROM buyers JOIN salesON buyers.buyer_id = sales.buyer_idJOIN produceON d_id = d_id把一个表和它自身连接USE joindbSELECT a.buyer_id AS buyer1, d_id, b.buyer_id AS buyer2FROM sales a JOIN sales bON d_id = d_idWHERE a.buyer_id b.buyer_id合并多个结果集从多个查询中使用 UNION 操作符创建单个结果集每个查询必须有:相同的数据类型相同的字段选择列表里字段的顺序相同USE northwindSELECT name = (firstname + + lastname), city, postalcodeFROM employeesUNIONSELECT companyname, city, postalcodeFROM customers从结果集创建表使用 SELECT INTO 语句要求唯一的表名能够创建本地和全局的临时表USE northwindSELECT employeeid,lastname,firstname AS products, unitprice AS price, (unitprice * 1.1) AS taxINTO #pricetableFROM products推荐方案在进行连接表时,在主键或外键的字段上连接表当表连接操作发生在多个字段组成的主键或外键上时,ON子句中一定要引用所有组成键的字段尽量限制连接表的个数,连接表多查询时间就越长第八章使用子查询介绍子查询为什么使用子查询把一个复杂的查询分解成一系列的逻辑步骤当查询依赖于另一个查询的结果时为什么使用连接而不用子查询SQL Server 执行连接要快于子查询把子查询用作派生的表查询语句中的一个结果集,被用做一个表代替了 FROM 子句中的表将与查询的其它部分一起参与优化USE northwindSELECT T.orderid, T.customeridFROM ( SELECT orderid, customerid FROM orders ) AS T把子查询用作表达式被当作一个表达式处理并计算在整个语句中,只计算一次USE pubsSELECT title, price, (SELECT AVG(price) FROM titles) AS average, price-(SELECT AVG(price) FROM titles) AS differenceFROM titles用子查询关联数据评估一个相关子查询模拟 JOIN 子句USE pubs USE pubsSELECT DISTINCT t1.type SELECT DISTINCT a.type as typeFROM titles t1 FROM titles as aWHERE t1.type IN join titles as b (SELECT t2.type FROM titles t2 ON a.type = b.type WHERE t1.pub_id t2.pub_id)WHERE a.pub_id b.pub_id模拟 HAVING 子句USE PubsSELECT t1.type, t1.title, t1.price FROM titles AS t1 WHERE t1.price ( SELECT AVG (t2.price) FROM titles AS t2 WHERE t1.type = t2.type)USE PubsSELECT t1.type, t1.title, t1.price FROM titles AS t1INNER JOIN titles AS t2 on t1.type = t2.typeGROUP BY t1.type, t1.title, t1.price HAVING t1.price AVG (t2.price)评估一个相关子查询模拟 JOIN 子句一个相关子查询产生一个结果集,这个结果集与连接 (JOIN) 所产生的结果集是相同的模拟 HAVING 子句使用子查询的 HAVING 子句USE PubsSELECT t1.type, t1.title, t1.price FROM titles AS t1 WHERE t1.price ( SELECT AVG (t2.price) FROM titles AS t2 WHERE t1.type = t2.type)不用子查询的 HAVING 子句USE PubsSELECT t1.type, t1.title, t1.price FROM titles AS t1INNER JOIN titles AS t2 on t1.type = t2.typeGROUP BY t1.type, t1.title, t1.price HAVING t1.price AVG (t2.price)使用 EXISTS 和 NOT EXIST操作符USE northwindSELECT lastname, employeeidFROM employees eWHERE EXISTS (SELECT * FROM orders AS o WHERE e.employeeid = o.employeeid AND o.orderdate = 9/5/1997)和相关的子查询一起使用判断某个值是否存在于一系列中的值SQL Server 处理过程外层查询测试子查询返回的记录是否存在基于查询指定的条件,子查询返回 TRUE或 FALSE子查询不产生任何数据最佳方案使用子查询分解复杂的查询在相关子查询中使用表的别名尽可能的使用操作符 EXISTS,而不是用 IN 操作符第九章数据修改使用事务开始事务 结束事务 显示事务 COMMIT 语句 自动提交 ROLLBACK 语句隐式事务BEGIN TRANSACTION UPDATE savings SET amount = (amount - 100) WHERE custid = 78910 UPDATE checking SET amount = (amount + 100) WHERE custid = 78910COMMIT TRANSACTION插入数据插入一行数据USE northwindINSERT customers (customerid, companyname, contactname, contacttitle, address, city, region, postalcode, country, phone,fax)VALUES (PECOF, Pecos Coffee Company, Michael Dunn,Owner, 1900 Oak Street, Vancouver, BC,V3F 2K1, Canada, (604) 555-3392, (604) 555-7293)使用 SELECT INTO 语句创建表USE northwindSELECT productname AS products, unitprice AS price, (unitprice * 1.1) AS taxINTO #pricetableFROM products插入部分数据USE northwindINSERT shippers (companyname)VALUES (Fitch & Mather)使用缺省值插入数据USE northwindINSERT shippers (companyname, phone)VALUES (Kenya Coffee Co., DEFAULT)插入一行数据使用 column_list 来指定用于保存新数据的列通过 VALUES 语句,确定你想插入的数据使用 SELECT INTO 语句创建表要求唯一表名能够创建本地或全局的临时表插入部分数据使用列缺省值插入数据DEFAULT 关键字在指定列插入缺省值列必须有缺省值或允许空值DEFAULT VALUES 关键字插入缺省值到所有列列必须有缺省值或允许空值删除数据使用 DELETE 语句在一个表中删除一个或多个行允许包含 WHERE 语句每个被删除的行将被存入事务日志记录中USE northwindDELETE ordersWHERE DATEDIFF(MONTH, shippeddate, GETDATE() = 6 使用 TRUNCATE TABLE 语句允许在一个表中删除所有行比 DELETE语句执行起来要快得多行被删除后不会被保存到事件日志中USE northwindTRUNCATE TABLE orders 更新数据更新基于表的数据WHERE 语句指定要更改的行SET 关键字指定新的数据输入值的类型于列定义的数据类型要一致USE northwindUPDATE productsSET unitprice = (unitprice * 1.1)性能考虑给事务中的数据加锁,防止其他事务或查询修改表可以修改数据的物理存储,同时导致数据页的分配修改的列创建了索引,这些列的索引也将被修改修改数据使用 WHERE子句可以改进性能推荐方案编写一个你真正修改数据前并不修改数据的SELECT语句,这样可以检验语句影响了哪些行通过把列名改为别名或使用文字替换来提高计算结果的可读性在DELETE或UPDATE语句会删除或更新所有行,除非你包含WHERE子句第十章管理数据库文件如何存储数据1、所有数据库都包括一个主数据文件 (.mdf)与一个或多个事务日志文件 (.ldf),此外还可能包括辅助数据文件 (.ndf)。2、在SQL Server 2000中,数据存储的基本单位是页,一页尺寸为8KB的连续磁盘空间,也就是1MB空间存储128个页面。3、行不能跨页,一行内最多包含数据量是8060字节。4、8个邻接的页为一个扩展。意味着每兆字节有16个扩展。5、事务日志文件保存有数据恢复的重要信息。事务日志的工作流程应用程序发送数据更改请求更改的时候,则把数据的页面从磁盘中调入内存(高速缓存)数据库更改语句发挥作用时,都将被记录到事务日志中检查点进程将所有完成的事务写回磁盘数据库。数据库创建过程中的现象创建数据文件和事务日志文件要求数据库的所有者和创建者拥有 master 数据库的许可权限允许用户定义以下内容:数据库名称数据库属性数据库文件的位置use masterselect * from sysdatabasesselect * from sysaltfiles要求数据库的所有者和创建者拥有master数据库的许可权限:数据库的信息被记录在master数据库的sysdatabase表和sysaltfiles表中。数据库创建过程中的选项设定69主文件辅助文件事务日志文件名及其位置尺寸文件增长最大尺寸排序规则数据库创建之后再更改数据库选项使用 SQL Server 企业管理器使用SQL 查询分析器系统函数系统存储过程 (sp_helpdb 或sp_spaceused)sp_helpdb masterDBCC 语句 (DBCC SQLPERF (LOGSPACE)管理数据库管理数据文件和日志文件的增长自动收缩数据库或数据库文件手工收缩数据库或数据库文件使用自动文件增长属性使用文件自动增长属性指定各个文件所分配的空间、最大尺寸,以及增长增量通过分配充足的资源、设置最大尺寸和设置增长增量来优化系统性能手工扩充数据文件和事务日志文件的尺寸确定是否自动或手动扩充文件尺寸创建辅助数据文件和事务日志文件自动收缩数据库或数据库文件自动收缩过程中SQL Server的活动当文件超过25%的未使用的空间时,将收缩数据文件和事务日志文件 收缩活动在后台进行,并且不影响数据库内的用户活动数据库属性选项自动收缩语法ALTER DATABASE NorthwindSET Auto_Shrink ON | OFF存储过程EXEC sp_dboption Northwind,Autoshrink,True |False 手工收缩数据库或数据库文件收缩的几种方法收缩数据库和数据文件收缩事务日志文件如果事务日志超过预期尺寸,那么收缩其中非活动部分如果事务日志尺寸不能减少到预期尺寸,SQL Server 将返回消息,并通知用户执行何种操作配置收缩数据选项示例:将 UserDB 用户数据库中的文件减小,以使 UserDB 中的文件有 10% 的可用空间。DBCC SHRINKDATABASE (UserDB, 10)将 UserDB 用户数据库中名为 DataFil1 的文件收缩到 7 MB。USE UserDB DBCC SHRINKFILE (DataFil1, 7)删除数据库删除数据库的方法删除数据库的限制条件 正在恢复过程中的数据库 正被用户打开,并且进行读写操作的数据库 把它的任何数据发布到其它服务器的数据库放置数据库文件和日志管理磁盘存储性能:不要把数据库文件放入压缩文件夹中容错:使用镜像或RAID-5卷来实现容错分布数据文件在单独磁盘上创建事务日志放置 tempdb 数据库到快速 I/O 磁盘中利用基于硬件的 RAID 优化数据库使用基于硬件的 RAID提供比基于操作系统的 RAID 更佳的性能用户在不关闭系统的情况下能够替换发生故障的驱动器RAID 的类型磁盘镜像和磁盘双工 (RAID 1);能够为事务日志保证冗余性带奇偶的磁盘条带化 (RAID 5);能够为数据文件和事务日志保证性能和冗余性带条带化的磁盘镜像(RAID10和RAID1+RAID2 );能够为数据文件保证最佳的性能利用文件组优化数据库创建用户自定义文件组查看文件组信息:企业管理器、sp_helpfile、sp_helpfilegroup创建用户自定义文件组的方法选择默认文件组调整主默认文件组的尺寸查看文件组信息使用文件组提高性能将数据负载平衡到多个磁盘中使用并行线程提高数据访问速度使用文件组提高可维护性备份或还原文件和文件组,而并非整个数据库将可维护性要求相近的表和索引分配到相同的文件组中为自己的文件组指定单独的高可维护性表创建文件组时需要考虑的问题在确定文件组数目的时候,使用可维护性要求条件,而并非性能要求条件将用户自定义文件组指定为默认文件组理解 “文件组不能支持容错功能”:Optimizing the database using filegroups with hardware-based RAID(在基于硬件的RAID上使用文件组来优化数据库),如下图:性能方面的考虑利用 RAID 改进性能或提供容错能力将数据文件和事务日志文件放置于单独的物理磁盘中利用用户自定义文件组简化超大数据库的备份策略推荐方案备份 master 数据库修改了某个数据库后,立即备份master数据库。指定文件的最大尺寸设置文件初始尺寸和自动增量足够大设置文件初始尺寸和自动增量足够大,可以避免频繁的文件增长活动。使用磁盘镜像、带奇偶的磁盘条带化和带条代化的磁盘镜像每个物理磁盘中创建一个文件并将其规划到文件组中更改默认文件组第十一章SQLserver安全性身份验证处理过程sysxlogins表列出可登录SQLServer用户的选择身体验证模式WINDOWS身份验证模式的优势高级安全性能够将组做为单个帐号来增加访问速度快混合模式的优势非win2000和Internet客户能够通过混合模式进行连接加密内部加密登录密码Transact-SQL定义网络加密实施身体验证模式的步骤创建SQL登录帐号SQL企业管理器服务器安全性登录建立新的登录帐号sp_grantlogin/增加一个windows登录帐号 EXEC sp_grantlogin domainuser02 sp_addlogin/增加一个SQL登录帐号 EXEC sp_addlogin SQL02增加的帐号信息将在syslogins文件中存放 SELECT * FROM syslogins/查看帐号信息增加SQLServer登录帐号:帐号的密码最多可包含128个字符,其中包括字母、数字和符号等。限制如下: 不能包含反斜线符号() 不能使用保留的登录帐号,如sa不能为空,或为空字符串为用户和角色分配登录帐号增加用户帐号 使用SQL企业管理器 数据库用户右键新建数据库用户选择用户帐号 使用sp_grantdbaccess存储过程USE data1EXEC sp_grantdbaccess SQL02 /给SQL用户设置登录权限EXEC sp_grantdbaccess domain111,qhx/给windows用户设置登录权限,取名DBO用户帐号 SA和系统管理员角色的任何成员都映射到每个数据库内称为DBO的一个特殊用户上。为角色分配登录帐号固定服务器角色 sysadmin/执行任何活动 dbcreator/创建和修改数据库固定数据库角色 public

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论