动态管理视图(DMV)监视Azure SQL DB/MI
文章平均质量分 60
使用动态管理视图监视 Azure SQL 数据库和 Azure SQL 托管实例
zyypjc
怒干一切困难的人和事
展开
-
使用 DMV 进行监视_识别 CPU 性能问题(目前正在发生 CPU 问题)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
CPU占有率是我们判断性能问题的一个重要依据,往往越高越体现出性能吃紧,消耗CPU资源太大,如果 CPU 使用率长时间超过 80%,且目前已出现问题,则可能存在两种情况:1. 存在许多单独的查询,它们共同消耗了很多的 CPU 资源使用以下查询来识别消耗量靠前的查询哈希:PRINT '-- top 10 Active CPU Consuming Queries (aggregated)--';SELECT TOP 10 GETDATE() runtime, *FROM (SELECT qu原创 2022-02-21 10:58:40 · 408 阅读 · 0 评论 -
使用 DMV 进行监视_监视资源使用情况(3上)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例sys.resource_stats这部分内容将分为上下两篇文章展开!sys.resource_stats比较实用,可以通用于AZURE SQL数据库和AZURE SQL托管实例。帮助我们获取更多信息。master 数据库中的sys.resource_stats视图包含的信息可帮助监视数据库在特定服务层级和计算大小的性能。 每 5 分钟收集一次数据,并且会保留大约 14 天。 此视图可用于数据库使用资源的方式的长期历史分析。..原创 2022-03-03 11:10:12 · 173 阅读 · 0 评论 -
使用 DMV 进行监视_最大并发请求数_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例并发请求数不管对于应用系统还是数据库系统,都是一项非常重要的参考指标,若要查看并发请求数,请在数据库中运行以下 Transact-SQL 查询:SELECT COUNT(*) AS [Concurrent_Requests]FROM sys.dm_exec_requests R;若要分析 SQL Server 数据库的工作负荷,请修改此查询,针对要分析的特定数据库进行筛选。 例如,如果有一个名为 MyDatabase 的本原创 2022-03-04 16:55:25 · 350 阅读 · 0 评论 -
使用 DMV 进行监视_监视资源使用情况(3下)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例紧接上一篇的内容,本篇我们将再详细展开一些例子。首先对于sys.server_resource_stats,我们先看一下如何公开此视图中的数据:下面的示例演示可以用不同方式使用 sys.resource_stats 目录视图,以获取有关数据库如何使用资源的信息:1. 若要查看数据库 userdb1 过去一周的资源使用情况,可以运行此查询:SELECT *FROM sys.resource_statsWHERE..原创 2022-03-04 16:28:44 · 431 阅读 · 0 评论 -
使用 DMV 进行监视_识别长时间运行的事务_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
事务是OLTP系统中的主要部分。它管理数据一致性和数据并发问题,当多个资源同时被读取或者修改相同数据时,SQLServer会通过锁定机制来确保数据库中的数据总是处于一个有效状态。长时间运行的事务会阻塞其他事务,引发各种性能问题,所以作为数据库管理员,一定要引起我们的重视。使用以下查询来识别长时间运行的事务。 长时间运行的事务会阻止版本存储的清理。SELECT DB_NAME(dtr.database_id) 'database_name', sess.session_id,原创 2022-02-25 11:21:48 · 152 阅读 · 0 评论 -
使用 DMV 进行监视_识别 CPU 性能问题(过去发生了 CPU 问题)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例上一篇中,我们谈到了正在发生的由于CPU资源占比过高导致的性能问题排查方式,本篇中我们将继续讨论如何排查历史已经发生的CPU引发的性能问题。对于SQL历史发生的问题,通常做法是我们调用QUERY STORE(查询存储)去进行溯源。而调用QUERY STORE时候,有图形化(SSMS中)以及使用T-SQL(本文重点介绍的方式)两种方式。拥有数据库访问权限的用户可以使用 T-SQL 对查询存储数据执行查询。 查询存储的默认配置使用 1 .原创 2022-02-22 23:27:32 · 463 阅读 · 0 评论 -
使用 DMV 进行监视_识别内存授予等待性能问题(1)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
我们先来理解下内存授权等待的概念:查询内存授予(下文缩写为QMG)是用于存储当数据进行排序和连接时的临时中间数据行。查询在实际执行前需要先请求保留内存,所以会存在一个授予的动作。这样的好处是提高查询的可靠性和避免单个查询占用所有的内存。如果最相关等待类型为RESOURCE_SEMAHPORE,但你未遇到 CPU 使用率偏高的问题,则可能是出现了内存授予等待问题。确定RESOURCE_SEMAHPORE等待是否为最相关的等待使用以下查询来确定RESOURCE_SEMAHPORE等待是...原创 2022-02-25 11:42:34 · 382 阅读 · 0 评论 -
使用 DMV 进行监视_监视资源使用情况(2)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL托管实例上一篇我们探讨了AZURE SQL数据库中的监视资源方式,本篇中将继续讨论对ZURE SQL托管实例的监视资源使用情况sys.server_resource_stats可以使用sys.server_resource_stats返回 Azure SQL 托管实例的 CPU 使用率、IO 和存储数据。 在五分钟间隔内收集并聚合数据。 其中有一行用于显示每隔 15 秒报告的信息。 返回的数据包括 CPU 使用率、存储大小、IO 利用率和托管实例 SKU。 历史数..原创 2022-03-02 11:18:45 · 276 阅读 · 0 评论 -
使用 DMV 进行监视_识别内存授予等待性能问题(2)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
识别内存消耗量较高的语句使用以下查询来识别内存消耗量较高的语句:SELECT IDENTITY(INT, 1, 1) rowId, CAST(query_plan AS XML) query_plan, p.query_idINTO #tmpFROM sys.query_store_plan AS p JOIN sys.query_store_runtime_stats AS r ON p.plan_id = r.plan_id JOIN sys原创 2022-02-26 14:05:51 · 288 阅读 · 0 评论 -
使用 DMV 进行监视_识别内存授予等待性能问题(3)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
识别最活跃的 10 个内存授予SELECT TOP 10 CONVERT(VARCHAR(30), GETDATE(), 121) AS runtime, r.session_id, r.blocking_session_id, r.cpu_time, r.total_elapsed_time, r.reads, r.writes, r.logical_reads, r.row_co原创 2022-02-27 12:40:44 · 224 阅读 · 0 评论 -
使用 DMV 进行监视_监视查询性能_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例SQL是系统和数据库交互的重要方式,日常工作中我们经常被性能糟糕的SQL所干扰。同样在AZURE数据库中,我们依旧面临相同的问题。缓慢或长时间运行的查询会消耗大量系统资源。 本部分演示如何使用动态管理视图来检测一些常见的查询性能问题。查找前 n 个查询下列示例返回了按平均 CPU 时间排名的前五个查询的信息。 该示例根据查询散列收集了查询,以便逻辑上等值的查询能够根据累积资源消耗分组。SELECT TOP 5 query_s原创 2022-03-05 15:49:33 · 388 阅读 · 0 评论 -
使用 DMV 进行监视_识别 IO 性能问题_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例如果把数据库性能比作一名学生,而各项围绕性能的参数比作各门课程的考试成绩,那联想木桶原理,我们不禁会问,哪门课程是该学生最薄弱的环节(哪项参数是数据库性能的短板?)?显而易见,作为整个计算机体系中的磁盘存储的速度是非常容易拉夸的,即数据库的IO方面对于性能影响最为致命。识别 IO 性能问题时,与 IO 问题最相关的等待类型包括: PAGEIOLATCH_* 数据文件 IO 问题(包括PAGEIOLATCH_SH、PAG.原创 2022-02-24 00:38:30 · 300 阅读 · 0 评论 -
使用 DMV 进行监视_计算数据库和对象大小_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
下面的查询将返回数据库的大小(以 MB 为单位):-- Calculates the size of the database.SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS bigint) * 8192.) / 1024 / 1024 AS DatabaseSizeInMBFROM sys.database_filesWHERE type_desc = 'ROWS';GO下面的查询将返回数据库中各个对象的大小(以 MB 为单位原创 2022-02-28 10:02:24 · 231 阅读 · 0 评论 -
使用 DMV 进行监视_监视连接_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
可以使用sys.dm_exec_connections视图检索与特定服务器和托管实例建立的连接的相关信息和每个连接的详细信息。 此外,sys.dm_exec_sessions视图在检索有关所有活动用户连接和内部任务的信息时非常有用。下面的查询将检索当前连接上的信息:SELECT c.session_id, c.net_transport, c.encrypt_option, c.auth_scheme, s.host_name, s.program_name, s.c...原创 2022-02-28 10:32:09 · 515 阅读 · 0 评论 -
使用 DMV 进行监视_最大并发登录数&最大会话数_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例最大并发登录数可以通过分析用户和应用程序模式来了解登录频率。 还可以在测试环境中运行实际负荷,确保不会超过本文所介绍的这样或那样的限制。 无法通过单一查询或动态管理视图 (DMV) 了解并发登录计数或历史记录。如果多个客户端使用相同的连接字符串,该服务也会对每个登录名进行身份验证。 如果 10 个用户使用相同的用户名和密码同时连接到数据库,则会有 10 个并发登录。 此限制仅针对使用登录名进行身份验证的那段时间。 如果这 10 个用户原创 2022-03-04 17:07:24 · 305 阅读 · 0 评论 -
使用 DMV 进行监视_识别 tempdb 性能问题_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例Tempdb简介首先来了解下Tempdb的概念,tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。很明显,这样的设计不是很好。当多个应用程序的数据库部署在同一台服务器上的时候,应用程序共享tempdb,如果开发人员不注意对Temp.原创 2022-02-24 10:14:31 · 362 阅读 · 0 评论 -
使用 DMV 进行监视_权限_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
在 Azure SQL 数据库中,查询动态管理视图需要 VIEW DATABASE STATE 权限。 VIEW DATABASE STATE 权限返回有关当前数据库中的所有对象的信息。 若要向特定数据库用户授予 VIEW DATABASE STATE 权限,可以采用如下两种比较常用的方式。1. 运行SQL:GRANT VIEW DATABASE STATE TO database_user;2. 通过SSMS图形化操作...原创 2022-02-20 15:58:43 · 342 阅读 · 0 评论 -
使用 DMV 进行监视_监视资源使用情况(1)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
本文适用:AZURE SQL数据库,AZURE SQL托管实例AZURE SQL数据库/托管实列,由于引入PORTAL等管理工具的概念,所以在监视资源上面我们的手段就比较多样化了,在本篇以及接下来的后续篇章中会详细展开,敬请期待。一般来说,可以使用SQL 数据库 Query Performance Insight监视 Azure SQL 数据库资源使用情况。 对于 Azure SQL 数据库和 Azure SQL 托管实例,可以使用查询存储进行监视。也可以使用以下视图来监视使用情况:..原创 2022-03-01 10:41:07 · 321 阅读 · 0 评论