丫丫小强的个人博客

MSSQL慢查询查询与统计

SELECT TOP 20 TEXT AS 'SQL Statement',
        last_execution_time AS 'Last Execution Time'
    ,(total_logical_reads + total_physical_reads + total_logical_writes) 
    / execution_count AS [Average IO]
    ,(total_worker_time / execution_count) / 1000000.0 AS [Average CPU Time (sec)]
    ,(total_elapsed_time / execution_count) / 1000000.0 AS [Average Elapsed Time (sec)]
    ,execution_count AS "Execution Count"
    ,qp.query_plan AS "Query Plan"
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.plan_handle) st
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp    --加上这个,执行时间有点长。
ORDER BY total_elapsed_time / execution_count DESC
 
 
 SELECT TOP 20
 total_worker_time/1000 AS [总消耗CPU 时间(ms)],
 execution_count [运行次数],
 qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],
 last_execution_time AS [最后一次执行时间],
 max_worker_time /1000 AS [最大执行时间(ms)],
 SUBSTRING(qt.text,qs.statement_start_offset/2+1,
 (CASE WHEN qs.statement_end_offset = -1 THEN DATALENGTH(qt.text)  
 ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1)
  AS [使用CPU的语法],
 qt.text [完整语法],
dbname=db_name(qt.dbid),
object_name(qt.objectid,qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count>1
ORDER BY total_worker_time DESC

MSSQL SERVER收缩日志文件

最近甲方那里数据库一个日志文件有了600多G,把数据库占满了,停了半个小时,好吓人。

下面介绍收缩日志的方法:

在简单模式下,进行收缩操作。


SQL SERVER 偶发执行SQL语句卡问题解决

SQL SERVER  偶发执行SQL语句卡问题解决

这两天客户那边操作系统,偶发非常卡,写代码追踪后发现是一个查询非常卡,但是表就只有十几条数据

处理方法:

一、查询锁表语句:

select   request_session_id   锁表进程,OBJECT_NAME(resource_associated_entity_id) 被锁表名 , * 
from   sys.dm_tran_locks where resource_type='OBJECT';

结果:


查询所有表、索引、视图信息的SQL语句-Oracle

一、查询所有表,视图的基本信息,字段信息,索引信息

在数据字典与识图中可以找到相应的视图,来查询数据库基本信息;详细字段信息需要到视图中的查看里都有描述


在DBA_TAB_COLS视图中中有详细的表的描述下面是字段信息

  •     TABLE_NAME      是表名,视图名或者集群名;




SQL SERVER 查看所有存储过程或视图里 包含某个关键字的查询语句

SELECT name, type_desc,text
FROM  sys.all_sql_modules s  JOIN sys.all_objects o ON s.object_id = o.object_id
WHERE  definition LIKE '%关键字%'ORDER BY type_desc, name;
SELECT name, xtype ,s.definition
FROM sysobjects o, syscomments s
WHERE o.id = s.id AND text LIKE '%agent%';
--查询所有包含某列名的对象
SELECT name, object_id,type, type_desc
FROM sys.objects
WHERE object_id IN (  SELECT object_id FROM sys.columns WHERE name = 'serverid' )



SQLServer 安装提示需要重启计算机的解决方案

SQLServer 安装提示需要重启计算机的解决方案



处理方法:

在开始-程序-运行中(或者直接windows+R件同时),输入regedit回车,


在注册表中找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations删除,就搞定