摘要:
数据库使用数据文件(扩展名是mdf 或 ndf)来存储数据,使用日志文件(扩展名是ldf)来存储事务日志,通常情况下,数据文件会持续增长,不会自动释放空闲空间,这样会导致硬盘空间耗尽。如果一个数据库的文件有很多空闲空间,收缩数据库文件是一种解决硬盘空间紧张的直接方式。在SQL Server中,我们可 阅读全文
摘要:
Replication Job “Distribution clean up: distribution” 默认设置是,每10minutes运行一次,每次删除2000个Command。这对于有1.9亿条Commands的distribution来说,显得力不从心。需要修改 sp [distribut 阅读全文
摘要:
SSISDB 系列随笔汇总: SSISDB1:使用SSISDB管理Package SSISDB2:SSIS工程的操作实例 SSISDB3:Package的执行实例 SSISDB4:当前正在运行的Package及其Executable SSISDB5:使用TSQL脚本执行Package SSISDB6 阅读全文
摘要:
SQL Server 内部集成了一个专用的操作系统,叫做SQLOS,处于SQL Server和Windows的中间层。SQLOS是一个协同式的多任务调度系统,使用非抢占式争用资源,用于管理线程调度、IO争用、内存管理和资源协调。在执行查询请求时,SQL Server充分利用系统的所有资源(CPU,M 阅读全文
摘要:
授予权限的思路,可以用一句话来概括,那就是:授予 Principal 操作 Securable 的 Permission,在多数文档中,把 Principal 翻译为安全主体,Securable翻译为安全对象,Permission翻译为权限,授予权限的子句细分为三部分:Permission,Secu 阅读全文
摘要:
通过standard reports查看Disk Usage,选中Database,右击,选择Reports->Standard Reports->Disk Space Usage,截图如下 在Disk Usage 报表中,Data Files Space Usage分为4部分:Index , Da 阅读全文
摘要:
今天早上,Dev跟我说,执行query statement时出现一个error,detail info是: “The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'” 错误信息提示:由于活动事务太长, 阅读全文
摘要:
在事务复制中distribution数据库使用 dbo.MSrepl_transactions 和 dbo.MSrepl_commands 这两个表转存发布服务器产生的的Transaction和Command。每个command只能更新(update,insert或delete)一条记录。在Publ 阅读全文
摘要:
打开Replication Monitor,在Subscription Watch List Tab中,发现有大量的status= “Performance critical” 的黄色Warning,Latency 非常高,第六感告诉我,出事了,无法求援,只能强迫自己淡定下来,既来之,则安之。 1, 阅读全文
摘要:
对表分区,对数据库有很多好处,通常来说,分区的好处有两个:减少产生死锁的竞争条件,和删除分区的数据。由于分区之间是相互独立的,因此,对一个分区加X锁,不会对其他分区产生竞争,这是避免死锁(dead lock)的一种方式。对大数据表进行数据删除操作时,可以使用分区切换,使用少量的IO,从分区表中删除海 阅读全文
摘要:
在开发项目的过程中,经常遇到需要解析论坛,博客等的URL的问题,比如:'abc/def/jkl' 或 'abc/def/jkl/',获取最后一个‘/’之后的所有字符‘jkl’,由于特殊字符'/'的个数不固定,从前向后正向解析URL,有点困难,其实有更简单的方法,那就是逆向解析法。 逆向解析的思路非常 阅读全文
摘要:
在使用Transactional Replication时,Subscriber 被认为是“Read-Only”的 , All data at the Subscriber is “read-only” (transactional replication does not enforce this 阅读全文
摘要:
对于Select子句查询的结果集,可以按照指定的字段进行分区,如下图所示,按照Province字段来对查询的结果集进行分区,可以认为,每一个分区就是一个窗口,因此,窗口是数据行的集合,是Select查询结果集的一个子集。 在TSQL脚本的OVER()子句中,使用Partition By 子句进行分区 阅读全文
摘要:
SQL Server发展至今,关于日期的格式的控制方法,有传统的方法,比如CONVERT(),也有比较便利的新方法,比如FORMAT();同样,关于日期的操作函数,也分为传统方法:DATEADD()等,也有便利的新方法:EOMonth()等。 一,日期的格式化 格式化是指把日期类型(Date)、日期 阅读全文
摘要:
大家知道,关系型数据库的逻辑运算的结果是三值型的,TRUE,FALSE和UNKNOWN,特别是,NULL值和任何值都不相等,任何值和NULL的比较,返回的逻辑结果都是unknown。而NULL值在唯一约束和Check约束中的表现,不同于NULL值的定义。 唯一(Unique)约束在内部使用唯一索引来 阅读全文
摘要:
默认值约束(Default约束)的作用是在执行insert命令时,如果命令没有显式给指定的列赋值,那么把默认约束值插入到该列中;如果在Insert命令中显式为指定的列赋值,那么将该列插入用户显式指定的值。每一列只能有一个default约束。默认值约束除了应用于insert命令中,也可以用于updat 阅读全文
摘要:
NULL表示unknown,不确定值,所以任何值(包括null值)和NULL值比较都是不可知的,在on子句,where子句,Merge或case的when子句中,任何值和null比较的结果都是false,这就是NULL设下的陷阱,我被坑过。 有一次,我使用Merge同步数据,由于target表中存在 阅读全文
摘要:
关系型数据库的查询语言(SQL)具有集合查询的特性,能够很方便地查询匹配任意一个数据的所有数据行,例如,有exists子句表示存在,表示匹配任意一行数据,但是如何表示匹配全部的数据行?例如,大学开设了C1-C9共计9门课程,如何查询选修了所有课程的学生?这就是“匹配全部”语义的一个经典实例。 使用以 阅读全文
摘要:
在SQL Server中,一个表只有两种存储结构:Heap和B-Tree,Heap是指没有创建聚集索引的表,B-Tree 结构是指已经创建聚集索引的表。 一,Heap和B-Tree的选择 索引是为了提高查询性能而设计的存储结构,索引是独立于“数据”之外的数据结构,设计目标是为了查找数据,例如,对于聚 阅读全文
摘要:
Execute Process Task 用于在Control Flow中执行应用程序,常用于对加密的数据进行解压。 1,RequireFullFileName 属性:是否需要完整的文件路径,如果在FullPath下没有找到文件,那么Task失败。File是Task执行的应用程序文件,默认值是Tru 阅读全文