SQL Server元数据查询

原文: SQL Server元数据查询


1、查询触发器的信息


   
   
  1. --查询触发器的信息
  2. select name, --触发器名称
  3. ( select name from sys.objects
  4. where object_id = t.parent_id) as tb_name --表的名称
  5. from sys.triggers t
  6. --查询触发器的代码
  7. select *
  8. from sys.sql_modules
  9. where object_id = object_id( '触发器的名称')


2、大综合


   
   
  1. --目录视图,或者是系统视图
  2. select *
  3. from sys.objects
  4. select *
  5. from sys.views
  6. select *
  7. from sys.procedures
  8. select *
  9. from sys.triggers
  10. --表
  11. select *
  12. from sys.tables
  13. --列
  14. select *
  15. from sys.columns
  16. --列的类型
  17. select *
  18. from sys.types
  19. --主键约束
  20. select *
  21. from sys.key_constraints
  22. --外键约束
  23. select *
  24. from sys.foreign_keys
  25. select*
  26. from sys.foreign_key_columns
  27. --default约束
  28. select*
  29. from sys.default_constraints
  30. --check约束
  31. select *
  32. from sys.check_constraints
  33. --identity列
  34. select*
  35. from sys.identity_columns
  36. --计算列
  37. select *
  38. from sys.computed_columns
  39. --索引
  40. select *
  41. from sys.indexes
  42. --索引列
  43. select *
  44. from sys.index_columns
  45. --索引的使用统计
  46. select *
  47. from sys.dm_db_index_usage_stats
  48. --索引的操作统计
  49. select *
  50. from sys.dm_db_index_operational_stats(
  51. DB_ID( '数据库名'),
  52. OBJECT_ID( 'db.dbo.object'),
  53. null,
  54. null,
  55. null)
  56. --索引的物理统计
  57. select *
  58. from sys.dm_db_index_physical_stats(
  59. DB_ID( '数据库名'),
  60. OBJECT_ID( 'db.dbo.object'),
  61. null,
  62. null)
  63. --动态执行的信息
  64. select *
  65. from sys.dm_exec_sessions
  66. select*
  67. from sys.dm_exec_connections
  68. select*
  69. from sys.dm_exec_requests
  70. select *
  71. from sys.dm_exec_query_stats
  72. select *
  73. from sys.dm_exec_sql_text( 'sql_handle')
  74. select*
  75. from sys.dm_exec_query_plan( 'query_plan')
  76. select *
  77. from sys.dm_exec_plan_attributes( 'query_plan')
  78. --sql缓存计划
  79. select *
  80. from sys.dm_exec_cached_plans
  81. --通过指定计划句柄或 SQL 句柄从计划缓存中删除特定计划
  82. dbcc freeproccache
  83. --刷新针对 Microsoft SQL Server 实例执行的分布式查询所使用的分布式查询连接缓存
  84. dbcc freesessioncache
  85. --可以使用此命令从所有缓存中或者从指定的资源调控器池缓存中手动删除未使用的条目
  86. dbcc freesystemcache( 'all')
  87. --database缓存
  88. select *
  89. from sys.dm_os_buffer_descriptors
  90. --清空database缓存
  91. dbcc dropcleanbuffers
  92. --内存分配
  93. select *
  94. from sys.dm_os_memory_clerks
  95. --事务
  96. select *
  97. from sys.dm_tran_session_transactions
  98. --会话的事务
  99. select *
  100. from sys.dm_tran_active_transactions
  101. --数据库事务
  102. select *
  103. from sys.dm_tran_database_transactions
  104. --锁
  105. select *
  106. from sys.dm_tran_locks
  107. select *
  108. from sys.dm_tran_current_transaction
  109. --等待
  110. select *
  111. from sys.dm_os_wait_stats
  112. --正在等待的task
  113. select *
  114. from sys.dm_os_waiting_tasks
  115. --tempdb的空间使用情况
  116. select *
  117. from sys.dm_db_file_space_usage
  118. select *
  119. from sys.dm_db_session_space_usage
  120. select *
  121. from sys.dm_db_task_space_usage
  122. --存储
  123. select *
  124. from sys.databases
  125. select *
  126. from sys.database_files
  127. select *
  128. from sys.master_files
  129. select *
  130. from sys.dm_io_virtual_file_stats(
  131. DB_ID(),
  132. 1
  133. );
  134. select *
  135. from sys.dm_io_pending_io_requests
  136. --
  137. select work_queue_count,
  138. pending_disk_io_count,
  139. failed_to_create_worker,
  140. *
  141. from sys.dm_os_schedulers
  142. --备份
  143. backup database master
  144. to disk = 'c:\master.bak'
  145. with format
  146. --还原
  147. --若要还原 master 数据库,服务器必须以单用户模式运行。
  148. --有关在单用户模式下启动的信息,请参阅联机丛书中的"如何启动 SQL Server 实例(sqlservr.exe)"。
  149. restore database master
  150. from disk = 'c:\master.bak'
  151. with replace --替换现有数据库
  152. --详细的io开销
  153. set statistics io on
  154. --详细的cpu开销
  155. set statistics time on
  156. --实际的文本格式的,执行计划
  157. set statistics profile on
  158. --DBCC数据库命令控制台
  159. dbcc checkdb( 'master')
  160. --远程数据查询
  161. --从sql server中查询
  162. SELECT *
  163. FROM
  164. OPENROWSET( 'SQLOLEDB',
  165. 'server=192.168.1.16,1433;uid=sa;pwd=winchannel', --字符串
  166. henkel.dbo.mdm_store) --直接写表的名称
  167. --从Excel中查询,通过引用4.0的库
  168. select *
  169. from
  170. openrowset( 'microsoft.jet.oledb.4.0',
  171. 'Excel 5.0;database=c:\t2.xls',
  172. sheet1$)
  173. --excel,12.0的库
  174. select *
  175. from
  176. opendatasource( 'microsoft.ace.oledb.12.0',
  177. 'data source=c:\t.xls;Extended Properties=Excel 12.0')...[sheet1$]


发布了416 篇原创文章 · 获赞 135 · 访问量 94万+

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/12020025.html