SQL性能优化常用语句(摘录网上)
2014-11-01 21:45
756 查看
1.把trace文件导入到表中
2.查询CPU开销大的语句
3.查询阻塞
4.查询连接数
5.存储过程物理读
SELECT IDENTITY(BIGINT, 1, 1) AS RowNumber,* into TableName FROM fn_trace_gettable('trace.trc', default)
2.查询CPU开销大的语句
SELECT top 100 total_worker_time/execution_count AS avg_cpu_cost, plan_handle, execution_count, (SELECT SUBSTRING(text, statement_start_offset/2 + 1, (CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset END - statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle) ) AS query_text,creation_time FROM sys.dm_exec_query_stats where creation_time > '2014-11-01' and (total_worker_time/execution_count) > 146341 ORDER BY [avg_cpu_cost] DESC
3.查询阻塞
SELECT a.* FROM sys.[sysprocesses] a WHERE a.[spid]>50 AND DB_NAME(a.[dbid])='DBName' and a.spid <> @@SPID and a.blocked > 0
4.查询连接数
SELECT COUNT(*) FROM [sys].[dm_exec_sessions] WHERE [session_id]>50
5.存储过程物理读
SELECT TOP (50) p.[name] AS [SP Name] ,qs.total_physical_reads AS [TotalPhysicalReads] ,qs.total_physical_reads / qs.execution_count AS [AvgPhysicalReads] ,qs.execution_count ,qs.total_logical_reads ,qs.total_elapsed_time ,qs.total_elapsed_time / qs.execution_count AS [avg_elapsed_time] ,qs.cached_time FROM sys.procedures AS p INNER JOIN sys.dm_exec_procedure_stats AS qs ON p.[object_id] = qs.[object_id] WHERE qs.database_id = DB_ID() AND qs.total_physical_reads > 0 ORDER BY qs.total_physical_reads DESC
相关文章推荐
- 常用性能优化方面的SQL语句
- Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)
- SQL Server数据库性能优化之SQL语句篇 (转)
- SQL Server数据库性能优化之SQL语句篇
- 数据库性能优化分析案例---解决SQL语句过度消耗CPU问题
- ORACLE常用SQL优化hint语句
- 性能优化分析案例---解决SQL语句过度消耗CPU问题
- sql常用语句积累及优化
- SQLServer性能优化之改写SQL语句
- SQL 语句优化(个人摘录)
- 转载:SQL Server数据库性能优化之SQL语句篇 (转)
- oracle sql语句性能优化
- SQL语句性能优化--LECCO SQL Expert
- SQLServer性能优化之改写SQL语句
- 摘录常用Sql语句
- .Net+SQL Server企业应用性能优化笔记3——SQL查询语句
- Oracle中SQL语句的性能优化
- 性能优化:Sql语句中HINT不起作用
- 小机上监控AIX和数据库管理系统的运行情况直到性能优化(SQL语句优化和排除硬件问题)
- ORACLE常用SQL优化hint语句