根据上面取出来的@object_id找出是哪个数据库的哪个表
- SELECT s.name AS table_schema, o.name as table_name
- FROM sys.sysobjects AS o INNER JOIN
- sys.schemas AS s ON o.uid = s.schema_id
- WHERE (o.id = @object_id)
|
根据上面取出来的@object_id和@index_id找出索引的名称
- SELECT id, indid, name as index_name
- FROM sys.sysindexes
- WHERE (id = @object_id) AND (indid = @index_id)
|
根据上面取出来的表名table_schema.table_name和索引的名称index_name,还可以找出该索引是建立在哪些字段上的
EXEC sp_helpindex 'table_schema.table_name' |
查看内存中缓存的执行计划,以及执行计划对应的语句:
输出可能较大,请小心使用
- SELECT usecounts, refcounts, size_in_bytes, cacheobjtype, objtype, text
- FROM sys.dm_exec_cached_plans cp CROSS APPLY sys.dm_exec_sql_text(plan_handle)
- ORDER BY objtype DESC
|
写了这么多竟然发现大多数讲的还是数据收集的这一部分,相应的解决办法还没有讲到......由于文章太长,具体的解决方法将在下一篇讲解,下一篇将从Database Page、Stolen和Multi-Page三部分的具体瓶颈来讲解。
相关链接:
SQL Server资源管理之内存管理篇(下)