1.查看存储过程的定义:通过sys.sql_module获得(存放存储过程,触发器,视图等)
2.与自定义函数和视图不同,当存储过程第一次执行候,系统会缓存其最优执行计划
3.使用存储过程的好处:集成管理T-SQL,减少网络负载,增加重用,存储过程支持控制逻辑
4.存储过程支持参数传递
5.在存储过程中,用EXISTS检查返回的结果集是否为空
6.在Service启动时,自动执行存储过程:使用sp_procoption,Context数据库必须是Master
7.查询所有存储过程:
SELECT definition,
execute_as_principal_id,
is_recompiled,
uses_ansi_nulls,
uses_quoted_identifier
FROM sys.sql_modules m
INNER JOIN sys.objects o ON
m.object_id = o.object_id
WHERE o.type = 'P'
8.存储过程的加密:在创建命令中使用“WITH ENCRYPTION”选项,这样sp_helptext就无法看到存储过程的明文定义了
9.使用With Execute As子句指明存储过程的安全Context
10.重编译技术:使用WITH RECOMPILE子句申明不缓存执行计划
DBCC FREEPROCCACHE:清除所有缓存的执行计划
在sys.dm_exec_cached_plans中查看所有缓存的执行计划