SQL Server存储过程与高级应用

 

今日要探索下SQL Server存储过程的运与优化方案。

   
 存储过程:由于自家之前的平首稿子针对性存储过程简单的开了概述,http://www.cnblogs.com/weilengdeyu/archive/2012/12/26/2834625.html这里就是不再赘言了。今天来拘禁下存储过程的尖端应用。

首先来拘禁下存储过程会包含如何内容:

wwwlehu6.vip乐虎官网 1

   
 从图被可见见,存储过程不仅包含单个select语句,还得蕴涵select语句块,例如Case
When,同样还好分包逻辑控制语句,如if—else等。

顾:存储过程中呢可涵盖insert,update和delete语句。

接下来我们来拘禁下扩展存储过程xp_cmdshell的用法

案例:启用xp_cmdshell

    SQL  Server2000中启用扩展存储过程:

  Use master

  Exec sp_addextendedproc xp_cmdshell,’xplog70.dll’

  Go

   SQL  Server 2005或SQL Server 2008启用xp_cmdshell

  sp_configure ‘xp_cmdshell’,1

  go

  reconfigure –让sp_configure立即生效

  go

  –开启高级选项

  sp_configure ‘show advanced options’,1

  go

  reconfigure

  go

   
 说明:服务器选项总共发生36个,默认情况下,sp_configure存储过程就展示中间的10单,显示结果中无含有高级选项,而且装有新的SQL
Server配置选都不见面并发在此简单的清单中。然而,我们好采用show
advanced options命令参数为SQL Server显示有有选项。

  案例:禁用/删除xp_cmdshell

    Sql server 2000剔除扩展存储过程

    –删除扩展存储过程

    use master

    exec sp_dropextendedproc ‘xp_cmdshell’

    go

  提高存储过程性的法子

    01,使用 set nocount on

    语法 
    SET NOCOUNT { ON | OFF } 

    注释 
    当 SET NOCOUNT 为 ON 时,不回计数(表示被 Transact-SQL 语句影响之行数)。当 SET NOCOUNT 为 OFF 时,返回计数。 

    当 SET NOCOUNT 为 ON 时,将未被客户端发送存储过程被之每个语句的 DONE_IN_PROC 信息。当用 Microsoft SQL Server 提供的实用工具执行查询时,在
     
 Transact-SQL 语句(如 SELECT、INSERT、 UPDATE 和 DELETE)结束时拿无见面当询问结果被展示”nn rows affected”。 

  02,减少而卜参数

  03,优化SQL语句

    001,避免频繁造访同一摆设或多张表

    002,尽量避免大量作业操作

    003,尽量避免使用游标

    004,注意where语句写法

 
     必须考虑语句顺序,应该因目录顺序、范围大小来确定标准子句的左右相继,尽可能的为字段顺序及索引顺序相平等,范围由深至有些。

    005,尽量使用exists代替select
count()判断是否留存记录,count函数只有在统计表中有行数时使用,而且count(1)比count(*)更wwwlehu6.vip乐虎官网有效率。

    006,注意表之间连续的数据类型

    007,先写DDL,再写DML

    008,合理利用索引

      要小心索引的保护,周期性重建索引,重新编译存储过程。

    009,合理利用tempdb系统表

      I,尽量避免使用distinct、order by、group by、having、join语句

      II,避免频繁创建同去临时表

      III,临时表中插入数据了怪,可使select into代替create table

      IV,使用了临时表,要以囤过程最后显式删除

      V,避免用大临时表与其余甚数据量表的链接查询以及改

  Sqlprofiler的使用

    通过Sqlprofiler可以检测到任何SQL 
server语句之实行,帮助我们分析SQL语句之末梢实施过程。

    使用方法:打开工具→SQL Server Profiler如下图

         wwwlehu6.vip乐虎官网 2

点击连接,出现下图界面

    wwwlehu6.vip乐虎官网 3

点击运行

 wwwlehu6.vip乐虎官网 4

该界面可以翻SQL Server的跟踪信息。

 wwwlehu6.vip乐虎官网 5

今日暂时追到这里,希望会于大家带来帮助!

 

 

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图