Tag Archives | mssql

从Search Sort到Join

发表于《程序员》2015年4月B的一篇文章,在博客归档下。根据杂志社要求,在自己博客发表该文章亦须注明:本文为CSDN编译整理,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

想通过原理来说明一些技术白皮书上“什么时候应该使用什么”这个“应该”后面的原因。通过数据结构中经典的排序查找算法来推倒解释数据库中几种经典的表连接背后的算法原理,和原理决定的在各种数据库中不同的应用和限制。以简单的算法来讲出数据库系统中看着核心强大功能的本质的算法设计。较之白皮书中不同数据库的不同描述,尽量去除差异,通过原理来描述功能,做到深入浅出。

一、前言

Join的语义是把两张表的通过属性的关联条件值组合在一起,一般意义上数据库范式越高,表被拆分的越多,应用中要被Join的表可能会越多。在我们日常开发中几乎找不到不涉及Join的SQL语句,哪怕未显示包含Join这个关键字。[......]

阅读全文

Tags: , , , , , ,

Comments { 0 }

B树在数据库索引中的应用剖析(原稿)

引言

关于数据库索引,随便Google一个Oracle indexMysql index总有大量的结果出来,其中不乏某某索引之n条经典建议。笔者认为,较之借鉴,在搞清楚了自己的需求的基础上,对备选方案的原理有个尽可能深入全面的了解会更有利于我们的选择和决策。因为某种方案或者技术呈现出某种优势(包括可能没有被介绍到但一定存在的限制),不是定义出来的,而是因为其实现机制决定的。就像LinkedList和ArrayList分别适用于什么应用不是Document里面定义的,是由其本身的结构决定的。数据库的索引也是一样,不是厂商的白皮书这样规定,而是其原理决定的。

本文只是重点介绍数据结构中经典的树(B树)结构在数据库索引中的经典应用,也会涉及到几种数据库中对此支持的细微不同,以期比较完整的描述实现原理。最终会发现这几种被不同数据库厂商冠以不同名字东西原理上其实差不多,理论上其实是一个东西。文[......]

阅读全文

Tags: , , , , , , ,

Comments { 1 }

记录Sql server 死锁日志

SQL Server 的死锁日志虽然可以通过

这样的脚本控制把死锁信息写到其日志中,但在大量的日志中查看还是不太方便。

deadlock-log

 

这样分散着存储看着非常不便。

尝试另外一种方式,借助sqlserver的profile来跟踪。即调用系统过程

来设置要跟踪的事件。其中参数eventid 是要跟踪的事件。死锁的Id是148。

deadlock-evebt

Columnid是要跟踪的列。如

deadlock-trace-column

将该操作封装成一个过程如下:

执行

即开启跟踪,结果保存到deadlock_trace.trc中

当[......]

阅读全文

Tags: ,

Comments { 0 }

无法装载DLL xpstar.dll或该DLL所引用的某一DLL.原因:126(找不到指定的模块)

Wizag的服务程序突然不工作了。读log看到数据库的错误:无法装载DLL xpstar.dll或该DLL所引用的某一DLL.原因:126(找不到指定的模块),是启动DTS时报的错误。

搜了很多地方,也推荐了很多方法,包括重新下载一个xpstar.dll 或是从其他地方拷贝一个。

我的解决办法是重新安装SP4。

一个办法是可以最终解决了问题。虽然也很简单了,但还是值得记录下来,因为花了挺长时间试。

Tags:

Comments { 0 }