在Mysql、PostgreSQL、Oracle都可以比较方便的检索慢查询,但SQLServer在此方面都比较麻烦,比如MSSQL Profile。
SQLServer 2016版起,微软添加此功能可以方便的检索慢查询,功能名称:查询存储!
查询存储可以解决的问题:
- 系统本番前后遇到的语句性能问题
- 语句在执行中发生的执行计划的变换
- 语句执行中使用的性能百分比
- 查找SQL语句缺失的索引的问题
- 快速分析目前服务器中的语句性能维度
[操作步骤]
- 启动SQLServer Management Studio
- 针对需要启用[查询存储]功能的数据库右键[属性]
- 点击[查询存储]
最快的方法是采用T-SQL:
ALTER DATABASE [数据库名称] SET QUERY_STORE = ON
GO
ALTER DATABASE [数据库名称]
SET QUERY_STORE (OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30),
DATA_FLUSH_INTERVAL_SECONDS = 900,
INTERVAL_LENGTH_MINUTES = 60,
MAX_STORAGE_SIZE_MB = 100,
QUERY_CAPTURE_MODE = AUTO,
SIZE_BASED_CLEANUP_MODE = AUTO)
GO
- 日志查询路径 :数据库 > 查询存储
有几种不同的方式:
- 回归的查询
- 总体资源消耗
- 资源消耗量最大的几个查询
- 带有强制执行计划的查询
- 具有高度差异的查询
- 跟踪的查询