Fork me on GitHub
SQLSERVER 中的 with锁级别

      WITH NOLOCK 除了本身不锁表(不加任何锁) 也不会受其他的已存在的锁影响,锁住的行数据也照样读

  个人认为这句话说得很清楚明了,一句话就能说明白的事

  不过好奇怪的是程序员经常用这个语句竟然也不去试一下

  这里顺便总结一下 其他的 SQLSERVER 中的 with锁级别

  WITH NOLOCK:无锁

     WITH HOLDLOCK:挂一个保持锁

     WITH UPDLOCK:挂一个更新锁

     WITH XLOCK:挂一个排他锁

     需要注意的是 with nolock 是不能用于update,delete insert  这种更新语句的,说绕了。

    简单的说 with nolock 只能用于select

  例如:update dbo.test with(NOLOCK) set username='wokofo'  ——这样的语句是错误的

  弹回:INSERT、UPDATE、DELETE 或 MERGE 语句的目标表不允许使用 NOLOCK 和 READUNCOMMITTED 锁提示。

  实际使用:

  select top 10 * from dbo.test with(NOLOCK)

  select top 10 * from dbo.test with(HOLDLOCK)

  select top 10 * from dbo.test with(XLOCK)

  select top 10 * from dbo.test with(UPDLOCK)

  update dbo.test with(HOLDLOCK) set username='wokofo'

     update dbo.test with(XLOCK) set username='wokofo'

     update dbo.test with(UPDLOCK) set username='wokofo'

摘要: SQLSERVER 在日常DBA工作中有一项叫索引整理一般整理的多为非聚集索引问题:聚集索引是否需要整理?在什么情况下需要整理?整理的效果如何?有没有负面作用?测试环境:WIN2003+SQL2008R2测试表:wkf_test 存放12767550条记录,wkf_test_all表是该表的备份1.首先来次DBCC结果如下:DBCC SHOWCONTIG 正在扫描 'wkf_test' 表...表: 'wkf_test' (725577623);索引 ID: 1,数据库 ID: 6已执行 TABLE 级别的扫描。- 扫描页数...................阅读全文
 
posted @ 2012-03-30 15:21 wokofo 阅读(129) 评论(0) 编辑
 
摘要: 在这种情况下,订阅服务器应该采用哪种版本的SQLSERVER? 2005还是2008? 这里假定一个前题:发布上的SQL2008并没有用到SQL2008的新特性也就是说SQL05上也能跑(兼容级别90)。否则这个问题就失去了可讨论性 如果你不加思索的回答SQL2008.那么你和我一样属于激进派 当然基本上这个答案也是正确的阅读全文
 
posted @ 2012-01-09 16:47 wokofo 阅读(136) 评论(0) 编辑
 
摘要: 一般DBA的帐号权限都很高(废话) DBA离职以后。删除帐号也几乎也是肯定的 这里会涉及一个问题。 原来由他新建或还原的数据库所有者可能是他的帐号 部分数据库作业所有者也是他的帐号 此时如果在各服务器上批量DROP LOGIN 后会有潜在风险(事实上证明,数据库还是可用,但是作业会有权限出错) 需要将这些数据库的对像所有者改回来(一般改成 'SA')阅读全文
 
posted @ 2011-11-24 16:59 wokofo 阅读(308) 评论(0) 编辑
 
摘要: 又是证书又是密码的。维护不方便(我就曾经出现过做镜像脚本时。直接把MASTERKEY给重做了。导致数据库无法访问。无法附加还原备库的尴尬境界) 最大的问题是:加密后的数据库文件和备份文件明显变大。这个是很严重的问题。不仅仅是磁盘空间多占了。而是磁盘IO显著降低。看看加密前后的磁盘队列吧 启用TDE后。直接就废掉了SQL2008的实用功能:备份压缩阅读全文
 
posted @ 2011-11-17 11:46 wokofo 阅读(825) 评论(3) 编辑
 
摘要: 来新单位上班后,流行玩微博 哥也赶潮流申请了个帐号。。 发现没粉丝 动起了邪念 找到了一个不算漏洞的漏洞 前两天一直在测试 昨天终于动手写了一个程序 可以给自己加粉! (注意是加粉噢,而不是加关注。加粉的难度是加关注的N倍) 嘿嘿 哥很得意! 软件采用C# 写的 代码不多 主要的原理是伪造HTTP请求头 欺骗服务器请求 其中有个不知道什么加密的字符串一直没破解好 所以加粉的过程并不是很迅速 现正在研究中 目前刷粉工具已运行超过4个小时。。 还算稳定 现在的工具 -只针对新浪微博 想要刷粉的朋友,可以在新浪微博上@我一下。“要刷粉” 回赠你一些粉丝 都是活粉 不是僵尸噢 我的微博帐号是: http://weibo.com/u/2207051637 其实我不喜欢刷粉的 软件截图。。。阅读全文
 
posted @ 2011-11-10 11:10 wokofo 阅读(615) 评论(14) 编辑
 
摘要: 前段时间**公司DBA来我们这培训。讲了一大堆MYSQL的优化。 QA环节一程序员问“SQL语句中的 with nolock 除了不锁表外 是否能读其他锁住的数据" 讲课的人嘟嘟了半天没解释清楚(有可能是MYSQL里没有这个机制),公司的另一程序员给出了一个很简洁明了的回答 WITH NOLOCK 除了本身不锁表(不加任何锁) 也不会受其他的已存在的锁影响,锁住的行数据也照样读阅读全文
 
posted @ 2011-09-07 14:38 wokofo 阅读(2187) 评论(5) 编辑
 
摘要: 一段脚本用于完成增删改BB客户机时对服务端的修改工作可以中英文切换#! /bin/bash#This File can add/modify/del the bbhost#Some paths may need to be modify#And Some errors may occur#By Wokofo 2010-08-19#LANG=en_US.UTF8#LANG=zh_CN.GB18030 去掉此注释,界面显示中文dir_bbhost='/home/bbuser/bb/etc/bb-hosts'dir_bbhtml='/home/bbuser/bb/bb/htm阅读全文
 
posted @ 2011-06-03 15:59 wokofo 阅读(98) 评论(0) 编辑
 
摘要: 有一批备份计划的队列,分发在不同的备份机上运行一台主备份机m台备份机对应m*n台服务器1.所有的备份机去一台主备份机的数据表中取得属于自己的备份计划(因为是隔天备份,所以今天的备份计划跟昨天不同,但是跟前天基本相同)2.在主备份机坏掉的情况下,各备份机要能正常的执行自己的备份计划3.在主备份机更新以后,各备份机要在最迟下个工作日时更新到自己的计划,且不能打乱原先的隔天备份计划,4.每个备份机的备份实时进度应该实时反馈到主备份机的数据表中5.因为备份机和主备份机可能不在同一个机房,所以存在备份机可能和主备份机网络中断的情况,此时的备份实时进度无法更新到主备份机,等网络畅通以后再更新进度(网络中断阅读全文
 
posted @ 2011-05-24 10:47 wokofo 阅读(93) 评论(0) 编辑
 
摘要: 数据库考试中经常会出现关系运算题目而一般的加减乘运算相对比较简单,通常不会直接出题比较容易乱的是除法这是很早以前我看关系代数时的一篇文章,分析得很好。一直收藏在我的收藏夹里。。今天整理收藏夹时又看到了转出来,分享一下 也顺便给自己做个补充。。。认真看下面这段中的图,很容易就理解出除法的 除法运算的定义:这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程设有关系R、S 如图所示,求R÷S 的结果求解步骤过程:第一步:找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);所得结果如下第二步:被除关系R中与S中不相同的阅读全文
 
posted @ 2011-05-24 10:42 wokofo 阅读(668) 评论(1) 编辑
 
摘要: 查询自动优化带来的负面影响--where条件执件顺序被打乱 解决的办法: 1。强制WHERE执行顺序 不让数据库引擎自动优化 2。变换SQL的写法阅读全文
 
posted @ 2010-07-29 13:22 wokofo 阅读(177) 评论(0) 编辑
 
posted on 2012-04-26 13:49  HackerVirus  阅读(872)  评论(0编辑  收藏  举报