--------------------
动态管理对象DMO(dynamic managerment objects)
--------------------
1.包含以下两部分
动态管理视图(DMV)
动态管理函数(DMF)
2.两部分的区别
相同点 以t-sql查询数据库运行状态的动态信息,都以表的形式返回
不同点 DMF需要提供一些参数来获取不同的输出
--------------------
数据库阻塞问题
--------------------
1.查询没有响应,为什么
哪个运行的sql连接,阻塞了我自己的查询
阻塞查询的连接,正在运行哪个sql
sql在等待什么资源
--------------------
诊断工具
--------------------
profiler "事件探查器"跟踪t-sql运行状况,图形跟踪工具,筛选事件,进行跟踪,发现性能问题。
短时间内,产生大量跟踪数据。
事务启动之前用
performance monitor "性能监视器"CPU,MEM使用情况,提供比较简单的信息
dbcc command "数据控制台命令"了解数据库目前运行语句
比较难以理解,信息简单
activity monitor "活动监视器",了解目前有哪些连接,哪些连接可以被挂起,可以睡眠的
stored procedures(sp_who,sp_who2,sp_lock) 存储过程,了解连接并行的状况,锁运行状况,通过查询系统表信息获得
其他实用工具 read80trace
--------------------
分类
--------------------
DMV & DMF分成两类
服务器范围内
数据库范围内
DMV & DMF都存储在master数据库的sys架构中
DMV & DMF命名都以"dm_"开头
共有85个,76个DMV,9个DMF
--------------------------
DMV功能分组,共12组
--------------------------
dm_broker_* 与servic broker有关"dmv"
dm_clr_* 与公共语言运行时有关的"dmv"
dm_db_* 与数据库有关的"dmv"
dm_db_index_* 与数据库索引有段的"dmv和dmf"
dm_db_mirroring_* 与数据库镜像有关的"dmv"
dm_exec_* 与执行有关的"dmv和dmf"
dm_fts_* 与全文搜索有关的"dmv"
dm_io_* 与i/o有关的"dmv和dmf"
dm_os_* 与sql操作系统有关的"dmv"
dm_qn_* 与查询通知有关的"dmv"
dm_repl_* 与复制有关的"dmv"
dm_tran_* 与事务有关的"dmv"
---------------
用法
---------------
1.使用select语句来查询
2.与性能计算器类似,通过"dmv和dmf"检索到的信息,也不是你访问当时的最新信息
3.查询结果是动态的
4.使用两部分、三部分、或四部分所组成的名称来引用
5.查询msdn帮助时需要使用两部分命名法
---------------
权限
---------------
1.授权访问
select
view server state
view database state
2.禁止访问
(1)首先在master中创建用户
(2)然后拒绝该用户对不希望,被访问的动态管理视图或函数的select权限
3.dmv和dmf所在位置
dmv
*****************************
系统数据库
master
视图
系统视图
sys.dm_.......
*****************************
dmf
*****************************
系统数据库
master
可编程性
函数
系统函数
表值函数
sys.dm_......
*****************************
----------------
用户授权 & 增加权限
----------------
(1/6)创建登录名
**********************************
安全性
登录名(右键--新建登录名)
|
|
【常规】 登录名 test
验证方式 sql
密码 111111
默认数据库 testdb
**********************************
(2/6)创建用户,进门后,要起个名字
*****************************************
数据库
testdb
安全性
用户(右键--新建用户)
|
|
【常规】 用户名 test
登录名 test
其余 缺省选项
*****************************************
(3/6)登录名授权,增加权限
**********************************************************
安全性
登录名
test(右键--属性)
|
|
【安全对象】 安全对象 <搜索>
特定类型的所有对象
|
|
【对象类型】 服务器
|
|
【显式】 查看服务器状态 (勾选)授予
**********************************************************
(4/6)master数据库创建test用户
**********************************************************************************************
master
安全性
用户(右键--新建用户)
|
|
【常规】 用户名 test
登录名 test
其他缺省默认
【安全对象】 安全对象 <搜索>
特定类型的所有对象
|
|
【对象类型】 数据库
|
|
【显示】 查看服务器状态 (勾选)授予
**********************************************************************************************
(5/6)上述完成后,可以使用下列命令查询
select * from sys.dm_clr_tasks ----必须加"sys."
(6/6)注:
sa和windows登录用户,具有天生权限,直接可用上述等命令