仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 592|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之两个SQL Server保护技能

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统的确,数据库的保护经常交给那些专业的数据库办理员,可是作为一个开辟者,你大概偶然必要临时处置这个事情。以是,试一试这两个SQL服务器保护技能:轻松改动数据库具有者、收拾索引碎片。谁会想到你乃至能够给那些数据库办理员教上一两个新技能呢?
重指定命据库具有者
当复兴大概新建数据库时,你有无注重到SQLServer把数据库的具有者置为你的NT登录名?仅仅为了确保分歧数据库间的分歧性(更别提平安性要素了),你大概思索用体系历程sp_changedbowner来把数据库具有者改成别的用户如体系办理员(SA)。你大概已写了如许一段剧本用来扫描一切用户数据库并把数据库具有者重指定为体系办理员。
体系历程sp_changedbowner有一个参数,即@map,其缺省值为空(null),该历程能够把数据库旧有的具有者的别号重映照为新的数据库具有者,如体系办理员。
为了演示该历程,让我们起首创建一个尽量小的数据库模子,然后运转sp_helpuser指令来看看新创立的用户名清单:
CREATEDATABASEtest
GO
USEtest
GO
EXECsp_helpuser
GO
这些代码实行后,输入应当列出数据库具有者的清单(db_owner)。假如你利用WindowsNT认证身份,那末清单中应当有一个NULL的登录名字和一个SID值。
然后,让我们加上两个登任命户:ISUser1和ISUser2作为db_owner的别号,并把数据库的具有者改成体系办理员:EXECsp_addlogin@loginame=ISUser1,@passwd=ISUser1,@defdb=master
EXECsp_addlogin@loginame=ISUser2,@passwd=ISUser2,@defdb=master
EXECsp_addalias@loginame=ISUser1,@name_in_db=dbo
EXECsp_changedbowner@loginame=sa,@map=TRUE
EXECsp_helpuser
输入内容应当显现出体系办理员作为db_owner、ISUser1作为db_owner的别号。
如今我们用历程sp_changedbowner来指定ISUser2为数据库新的具有者。我们将利用该历程的@map参数并把该参数赋值为“否”,如许把用户将为别号。

EXECsp_changedbowner@loginame=ISUser2,@map=FALSE
EXECsp_helpuser
GO

输入应当显现出ISUser2如今成为数据库新的具有者,ISUser1降为别号。上面,我们应当中断这个数据库并停止本演示历程。

USEmaster
GO
DROPDATABASEtest
GO

用DBCCINDEXDEFRAG命令来完成保护
对索引举行保护事情是一件冗杂吃力的事情,不外在SQLServer2000中,微软已引进了一条保护命令DBCCINDEXDEFRAG,它绝对SQLServer7.0的DBREINDEX命令来讲,有好几个长处。最次要的长处就是它是一种在线操纵,如许,在该命令运转时代用户仍能够一连事情。这是由于它不像DBREINDEX那样在运转时必要锁定操纵所触及的资本,它还能够下降内容堵塞。
DBCCINDEXDEFRAG操纵一小段、一小段的数据,如许该操纵随时都能够中断上去并跟踪它已完成的事情。该操纵每隔五分钟就呈报一次估量已完成事情的百分比。
从手艺的角度来看,DBCCINDEXDEFRAG重新布置了方针索引地点确当前分派页上的物理叶。当操纵完成后,方针索引的物理按次与它的逻辑按次绝对应,因而能够减速索引的扫描速率。
该操纵还从头布置分派分派给方针索引的空间中的别的索引页。SQLServer将会为以一个添补因子为方针、依据索引数据的密度和为该索引分派的空间巨细,来为索引缓冲页上的空间。操纵后空上去的页将会被开释,这就使得索引变得加倍松散。
DBCCINDEXDEFRAG也有几个弱点必要你注重:
假如一个表格中的两个索引共享一个盘区的统一个空间,而这两个索引其实不相邻,那末最好从头创建索引让它们相邻。
假如索引中的碎片太多,那末DBCCINDEXDEFRAG命令实行的速率大概要低于DBREINDEX命令;可是假如索引中的碎片不太多,那末DBCCINDEXDEFRAG应当比DBREINDEX快的多,用DBCCINDEXDEFRAG代替DBREINDEX的优点网上有先容。
非叶式(nonleaf)索引页不克不及从头排序。
DBCCINDEXDEFRAG不克不及更新统计数字。

如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKEabc%‘,MySQL将使用索引;如果查询条件是LIKE%abc’,MySQL将不使用索引。
不帅 该用户已被删除
沙发
发表于 2015-1-19 09:14:41 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
活着的死人 该用户已被删除
板凳
发表于 2015-1-25 14:04:21 | 只看该作者
光写几个SQL实在叫无知。
分手快乐 该用户已被删除
地板
发表于 2015-2-2 22:19:46 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
飘灵儿 该用户已被删除
5#
 楼主| 发表于 2015-2-8 14:11:59 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
爱飞 该用户已被删除
6#
发表于 2015-2-25 18:09:26 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
兰色精灵 该用户已被删除
7#
发表于 2015-3-8 00:37:03 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
柔情似水 该用户已被删除
8#
发表于 2015-3-15 18:10:44 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
只想知道 该用户已被删除
9#
发表于 2015-3-22 03:09:17 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表