随笔分类 - SQLServer
摘要:涉及到Unicode字符编码的问题。DATALENGTH(expression)返回用于表示任何表达式的字节数。例如:select datalength('我们') 结果:4LEN(string_expression )返回给定字符串表达式的字符数(不包括尾随空格),而不是返回字节数。例如:select len('我们') 结果:2declare @a char(4000)set @a = REPLICATE('a',4000)select LEN(@a) --4000select DATALENGTH(@a) --4000declare @b
阅读全文
摘要:在数据库的应用系统中,死锁是不可避免的。通过设置死锁的处理优先级方法,可以在数据库引擎中自动检测到死锁,对发生的死锁会话进行干预,从而达到解除死锁的目点,但在这种情况下,会话只能被动的等待数据库引擎的自我检查。我们是否可以让会话自身也拥有处理死锁的主动权呢?这就是设置锁的超时时间。当一个会话与另一个会话冲突引阻塞时,如果等待的时间超过指定的值,则该会话自动取消,并释放数据库资源。这样,就达到了解决死锁的目的。那么如何来查看锁的超时时间呢?利用@@lock_timeout函数即可: 可以看一下@@LOCK_TIMEOUT的语法与定义:@@LOCK_TIMEOUT--返回当前会话的当前锁超时设置,
阅读全文
摘要:死锁deadlock 当一个进程锁定了另一个进程需要的页或者表的时候,而第二个进程又锁定了第一个进程需要的一页,这个时候就会发生死锁。死锁也叫抱死。 SQL Server自动探测和解决死锁。如果找到一个死锁,服务器将终止完成了抱死的用户进程。阻塞block 阻塞定义 =============== 当来自应用程序的第一个连接控制锁而第二个连接需要相冲突的锁类型时,将发生阻塞。其结果是强制第二个连接等待,而在第一个连接上阻塞。不管是来自同一应用程序还是另外一台客户机上单独的应用程序,一个连接都可以阻塞另一个连接。 说明 一些需要锁保护的操作可能不明显,例如系统目录表和索引上的锁。 大多数阻塞问题
阅读全文
摘要:SQL Server 2000 更换服务器,平级迁移,由于DTS包和作业比较较多,所以直接采用还原msdb数据库的方法。还原后需要修改一些DTS包,修改后提示错误“无法添加、更新或删除从MSX服务器上发起的作业”错误原因:在msdb..sysjobs的列originating_server中保存了原来SQL Server 2000 instance的名字,当服务器名变更后,sysjobs的originating_server并没有相应的更新成新的serverinstance。解决方法:直接更新sysjobs表的originating_server列。update msdb..sysjobsse
阅读全文
摘要:个人笔记:测试环境:SQL Server 2000 SP4,2005,2008 R2 SP2完整备份:A,B日志备份:a,b,c,d,e备份顺序:A,a,b,B,c,d,e还原:测试:A,a,b,c,d,e成功测试:B,c,d,e 成功测试:A,a,b,B,c,d,e 成功结论:完整备份不会打乱日志链。
阅读全文
浙公网安备 33010602011771号