02 2013 档案
摘要:1.跟踪标记用于临时设置特定服务器的特征和关闭特定行为。跟踪标记经常用于诊断性能问题,或调试存储过程或复杂的计算机系统。(1)启用指定的跟踪标记。DBCC TRACEON ( trace# [ ,...n ][ , -1 ] ) [ WITH NO_INFOMSGS ](2)禁用指定的跟踪标记。DBCC TRACEOFF ( trace# [ ,...n ] [ , -1 ] ) [ WITH NO_INFOMSGS ](3)显示跟踪标志的状态。DBCC TRACESTATUS ( [ [ trace# [ ,...n ] ] [ , ] [ -1 ] ] ) [ WITH NO_INFOMS
阅读全文
摘要:方法一:使用T-SQL语句实现移动数据库--首先让你的数据库状态变成脱机状态ALTER DATABASE Test SET OFFLINE WITH ROLLBACK IMMEDIATE;--执行这个命令之后,SQL Server立即断开所有的连接并回退它们的事务(此时如果有执行未完的事务就容易让数据库丢失)--所有正在执行事务的用户都会接收到一个连接错误,而且他们不能再连接数据库。--查看Test数据库是否存在,对对看数据库名字是否正确SELECT name ,physical_name AS CurrentLocation ,state_descFROM sys.master_files-
阅读全文
摘要:在我们编写程序的时候,有时候要进行复杂的查询时,就会出现执行sql时间过长,引起页面执行不了并提示执行脚本超时,这就是我们遇到超时异常。超时异常分两种情况:一种,是连接超时;一种,是执行超时。前者,通过SqlConnection.ConnectionTimeOut进行设置。后者,通过SqlCommand.CommandTimeOut进行设置。SqlConnection.ConnectionTimeout获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。等待连接打开的时间(以秒为单位)。默认值为 15 秒。SqlCommand.CommandTimeout获取或设置在终止执行命令的尝试并生
阅读全文
摘要:在进行数据持久化的时候,我们会经常用到事务处理。一般情况下,ADO.NET中的事务处理就能够满足我们的需要,但是,ADO.NET中的事务不能同事对多个数据库连接进行原子性的操作;如果在你的业务环境中存在多个数据库、文件写入等操作,同时需要保证数据完整性和一致性的时候,你可以考虑使用.NET提供的分布式事务处理。 使用分布式事务处理,需要Windows系统的支持,所以,我们需要将系统的MSDTC服务开启。步骤:管理工具>组件服务;依次展开 控制台根节点>组件服务>计算机>我的电脑;在“我的电脑”节点上右键打开“属性”;在选项卡中勾选“使用本地协调器”,然后点击“确定”按钮
阅读全文
摘要:首先,我需要强调下,这篇主旨是揭示堆表的删除记录找回的原理,我所考虑的方面并不适用于每个人的每种情况,望大家见谅~ 很多朋友认为数据库在简单模式下,堆表误删除一条记录,是无法找回的,因为没有日志记录。其实不然,某种意义上是可以找回的,因为堆表在删除记录时,没有回收空页面的前提下,只更改了行偏移,实际数据没有被物理删除,所以利用这点,测试了下恢复数据,果然成功了,但是还有点问题没有研究出结果:如果不关闭页面校验,除了更改偏移量,删除数据时还需要更改页眉,这点还没时间去琢磨,所以恢复数据时还要能推断出页眉的16进制对应关系,有兴趣的朋友可以分享下经验给我。这里为了排除页眉的校验错误,关闭后测试..
阅读全文
摘要:SQL Server Insert 操作效率(堆表 VS 聚集索引表) “SQL Server的Insert操作在堆表或者聚集索引表的时候,哪个效率更高?为什么高?” 之前有同事问过我这个问题,为了确保日志库的记录效率,于是我做了简单测试了,首先要先强调几点概念: 堆表:没有聚集索引的表,记录通过IAM页以及PFS页来确定哪页有空闲空间。 聚集索引表:有聚集索引的表,记录是根据聚集键值所在页的键值逻辑顺序维护的Demo:如下 分别对堆表和聚集表进行5个并发线程,每个线程各10000次循环插入 1. 堆表测试--1. 创建一张堆表create table Insert_Test...
阅读全文