打造本身的辅助工具,提升开发效率

打造本身的辅助工具,提升开发效率数据库

本文涉及的知识是很是简单而又基础的,可是活用这些知识能够显著的提升您的开发效率,您还能够发挥创意扩展本身的开发工具。工具

1、基础知识点:开发工具

知识点1:能够在当前数据库直接访问master数据库中存储过程名称以sp_开始(且必须是以sp_开始)的存储过程。spa

说明:执行存储过程时,“若是过程名称的前三个字符为 sp_SQL Server 会在 Master 数据库中寻找该过程。若是没能找到合法的过程名称,SQL Server 会寻找全部者名称为 dbo 的过程”(参见Sql Server联机帮助文档(索引“存储过程:执行”))。这其实是在暗示咱们用户自定义的存储过程名称最好不要用sp_开始,这样能够缩短(可能没有那么显著)存储过程时间。orm

知识点2:在开发过程当中,经常要察看一个表中的数据,常常在查询分析器中重复的输入“select * from ”您是否是以为很烦,至少我以为很烦。其实咱们能够将经常使用的语句在查询分析器中定义为一个快捷键(如图一),要执行时仅需按快捷就能够直接执行,省掉输入过程,少了输入的错误,是否是很爽?运用知识点1中的技巧,将经常使用语句写成一个存储过程(为何要写成存储过程在后面详述)master数据库中,就能够在任何数据库下调用您的经常使用语句了。xml

说明:当您按下快捷键执行命令时,查询分析器首先调用“sp_sproc_columns”存储过程,判断此快捷键对应的语句输入参数是什么,若sp_sproc_columns返回空结果集(非存储过程也会返回空结果集),则认为执行此语句不须要参数,直接执行此语句;如有结果集,则将查询分析器中选中部分做为参数传入并执行语句。因此,咱们简单的要将“select * from”这类语句定义为快捷键命令都必需要定义为存储过程,不然没法接收传入参数。对象

 

图1、将经常使用语句定义为快捷键索引

2、看我抛砖:进程

       结合实际工做,我写了四个经常使用存储过程,定义为快捷键,实现即时快速调用。事务

2.1、表结构显示

       过程名:sp_tableframe

       缘起:开发中咱们严禁在数据窗口、视图、存储过程当中存在“select *”和“insert into values”这类不指明目标列的写法,但要逐个字段输入太烦易错;存储过程当中经常存在从物理表造成临时表的需求,严谨的写法是“create table #临时表名”(select * into #临时表名 的写法可能会锁tempdb数据库,不建议使用),但create table 后的内容要逐个字段输入也是太烦易错;咱们还常有要看表字段的中文注释、数据类型、默认值等内容的需求。

       代码:()

       结果集:(共有4)

       结果集一为表的概况;结果集二为表的列名、类型、主键、描述等属性;结果集三把表的列名按逗号分隔成字符串,使用时直接复制粘贴便可避免重复输入;结果集四和三相似,但带上了字段类型定义信息,能够复制出来用于建立临时表。

2.2、锁表进程查询

       过程名:sp_ShowLock

       缘起:当出现锁表时,咱们急须要知道的是谁锁了谁,是在哪一个语句上锁了,冲突的资源是什么。但Sql Server缺少一个能知足咱们要求的命令,得,本身写一个。

       代码:()

       结果集:(共有2)

       结果集一:被阻进程、被阻语句、阻进程、阻塞语句、等待时间、CPU时间、磁盘累计读写、登陆时间、打开事务、状态、网卡地址

       结果集二:锁定发生的数据库、锁定对象、类型、模式、状态

2.3、表空间使用统计查询

过程名:sp_tablespaceused

缘起:在上几十G的数据库中,咱们可能关心数据库中哪一个表最大,要知道每一个表在数据库中空间占用的大体状况,此过程为解决此问题而作。

代码:()

结果集:()

2.4、造成数据字典

       过程名:sp_MsDataDict

       缘起:整理改善了原来的导出表结构的语句。

结果集:()

 

以上主要介绍了两个知识点,围绕这两个知识点讲了四个例子,但愿能起到抛砖引玉的做用,对你们有所帮助。