All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
GDI+中的元文件
序列化和反序列化XML应用程序设置类_[Asp.Net教程]
SQLServer2005中的XML选项详解(1)_[SQL Server教程]
Delphi执行sql server普通查询
SQL Server2000安全管理机制详解_[SQL Server教程]
ZendCache使你的站点飞起来_php资料_编程技术
Asp.net获得日历控件当前选择显示的年月_[Asp.Net教程]
C#中的try
ASP.NET技巧:用MasterPage,代替,PageBase_.net资料_编程技术
.NET开发,正则表达式中的,Bug_.net资料_编程技术
Reading number is top 10 pictures
The little woman's bright wire1
狗狗与主人神同步1
中国处女图鉴2
西方气质的东方美女2
Female model behind the bitterness, often being overcharged1
妹子最好别玩单反
开始让人感动,后来......
七步解决性冷淡
浴室里的美女
毕姥爷事件,告诉你6条真理
Download software ranking
Kung fu panda - the secret of the teacher
Unix video tutorial9
Tram sex maniac 2 (H) rar bag18
Sora aoi - one of more PK
Unix video tutorial13
Ashlynn Video2
虚拟机5.5.3版
Eclipse 4.2.2 For Win32
C++编程教程第三版
Prostitutes diary
归海一刀 published in(发表于) 2014/2/1 0:18:00 Edit(编辑)
两个SQL,Server维护技巧_[SQL,Server教程]

两个SQL,Server维护技巧_[SQL,Server教程]

两个SQL Server维护技巧_[SQL Server教程]

确实,数据库的维护常常交给那些专业的数据库管理员,但是作为一个开发者,你也许偶尔需要暂时从事这个工作。所以,试一试这两个SQL服务器维护技巧:轻松改变数据库拥有者、整理索引碎片。谁会想到你甚至可以给那些数据库管理员教上一两个新技巧呢?重指定数据库拥有者当回复或者新建数据库时,你有没有注意到SQL Server把数据库的拥有者置为你的NT登录名?仅仅为了确保不同数据库间的一致性(更别提安全性因素了),你也许考虑用系统过程sp_changedbowner来把数据库拥有者改为其它用户如系统管理员(SA)。你也许已经写了这样一段脚本用来扫描所有用户数据库并把数据库拥有者重指定为系统管理员。
  
  系统过程sp_changedbowner有一个参数,即@map,其缺省值为空(null),该过程可以把数据库旧有的拥有者的别名重映射为新的数据库拥有者,如系统管理员。
  
  为了演示该过程,让我们首先建立一个尽可能小的数据库模型,然后运行sp_helpuser指令来看看新创建的用户名清单:


  CREATE DATABASE test  GO  USE test  GO  EXEC sp_helpuser  GO


  这些代码执行后,输出应该列出数据库拥有者的清单(db_owner)。如果你使用Windows NT认证身份,那么清单中应该有一个NULL的登录名字和一个SID值。
  
  然后,让我们加上两个登录用户:ISUser1和ISUser2作为db_owner的别名,并把数据库的拥有者改为系统管理员:


EXEC sp_addlogin @loginame = 'ISUser1',
@passwd = 'ISUser1',@defdb = 'master' 
 EXEC sp_addlogin @loginame = 'ISUser2',
@passwd = 'ISUser2',@defdb = 'master' 
 EXEC sp_addalias @loginame = 'ISUser1',
@name_in_db = 'dbo'  EXEC sp_changedbowner @loginame = 'sa',
@map = 'TRUE'  EXEC sp_helpuser


  输出内容应该显示出系统管理员作为db_owner、ISUser1作为db_owner的别名。


  现在我们用过程sp_changedbowner来指定ISUser2为数据库新的拥有者。我们将使用该过程的@map参数并把该参数赋值为“否”,这样把用户将为别名。


  EXEC sp_changedbowner @loginame = 'ISUser2', @map = 'FALSE'
  EXEC sp_helpuser  GO


  输出应该显示出ISUser2现在成为数据库新的拥有者,ISUser1降为别名。下面,我们应该停止这个数据库并结束本演示过程。


  USE master  GO  DROP DATABASE test  GO 


  用DBCC INDEXDEFRAG命令来实现维护


  对索引进行维护工作是一件冗长费力的工作,不过在SQL Server 2000中,微软已经引入了一条维护命令DBCC INDEXDEFRAG,它相对SQL Server7.0的DBREINDEX命令来说,有好几个优点。最主要的优点就是它是一种在线操作,这样,在该命令运行期间用户仍可以连续工作。这是因为它不像DBREINDEX那样在运行时需要锁定操作所涉及的资源,它还可以降低内容阻塞。
  
  DBCC INDEXDEFRAG操作一小段、一小段的数据,这样该操作随时都可以停止下来并跟踪它已经完成的工作。该操作每隔五分钟就报告一次估计已完成工作的百分比。
  
  从技术的角度来看,DBCC INDEXDEFRAG从新安排了目标索引所在的当前分配页上的物理叶。当操作完成后,目标索引的物理顺序与它的逻辑顺序相对应,因此可以加速索引的扫描速度。
  
  该操作还重新安排分配分配给目标索引的空间中的其它索引页。SQL Server将会为以一个填充因子为目标、根据索引数据的密度和为该索引分配的空间大小,来为索引缓冲页上的空间。操作后空下来的页将会被释放,这就使得索引变得更加紧凑。
  
  DBCC INDEXDEFRAG也有几个缺点需要你注意:
  
  如果一个表格中的两个索引共享一个盘区的同一个空间,而这两个索引并不相邻,那么最好重新建立索引让它们相邻。


  如果索引中的碎片太多,那么DBCC INDEXDEFRAG命令执行的速度可能要低于 DBREINDEX命令;但是如果索引中的碎片不太多,那么DBCC INDEXDEFRAG 应该比DBREINDEX快的多,用DBCC INDEXDEFRAG取代DBREINDEX的好处网上有介绍。


  非叶式(nonleaf)索引页不能重新排序。


  DBCC INDEXDEFRAG不能更新统计数字。


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.