创建性能计数器,以便跟踪分片映射管理器的性能
适用于:Azure SQL 数据库
性能计数器用于跟踪数据相关路由操作的性能。 可在“弹性数据库: 分片管理”类别下的“性能监视器”中访问这些计数器。
可以捕获分片映射管理器的性能,尤其是在使用数据依赖型路由时。 计数器是使用 Microsoft.Azure.SqlDatabase.ElasticScale.Client 类的方法创建的。
有关最新版本: 请转到 Microsoft.Azure.SqlDatabase.ElasticScale.Client。 另请参阅升级应用以使用最新的弹性数据库客户端库。
先决条件
- 若要创建性能类别和计数器,用户必须属于托管应用程序的计算机上的本地“管理员”组。
- 若要创建性能计数器实例和更新计数器,用户必须是“管理员”或“性能监视器用户”组的成员。
创建性能类别和计数器
若要创建计数器,请调用 ShardMapManagementFactory 类的 CreatePerformanceCategoryAndCounters 方法。 只有管理员才能执行该方法:
ShardMapManagerFactory.CreatePerformanceCategoryAndCounters()
该方法将创建以下性能计数器:
- 缓存的映射:分片映射缓存的映射数。
- DDR 操作数/秒:分片映射的数据相关路由操作速率。 对 OpenConnectionForKey() 的调用导致成功连接到目标分片时,将更新此计数器。
- 映射查找缓存命中数/秒:分片映射中映射的成功缓存查找操作速率。
- 映射查找缓存未命中数/秒:分片映射中映射的失败缓存查找操作速率。
- 在缓存中添加或更新的映射数/秒:在缓存中为分片映射添加或更新映射的速率。
- 从缓存中删除的映射数/秒:从缓存中删除分片映射的映射速率。
性能计数器是按进程为每个缓存分片映射创建的。
注释
以下事件会触发性能计数器创建:
- 如果 ShardMapManager 包含任何分片映射,使用预先加载初始化 ShardMapManager。 这包括 GetSqlShardMapManager 和 TryGetSqlShardMapManager 方法。
- 成功查找分片映射(使用 GetShardMap()、GetListShardMap() 或 GetRangeShardMap())。
- 使用 CreateShardMap() 成功创建分片映射。
对分片映射和映射执行的所有缓存操作将会更新性能计数器。 使用 DeleteShardMap() 成功删除分片映射会导致删除性能计数器实例。
最佳实践
- 只应在创建 ShardMapManager 对象之前创建性能类别和计数器一次。 每次执行命令 CreatePerformanceCategoryAndCounters() 都会清除以前的计数器(丢失所有实例报告的数据),并创建新计数器。
- 性能计数器实例是按进程创建的。 任何应用程序崩溃或从缓存中删除分片映射都会导致删除性能计数器实例。
另请参阅
相关内容
尚未使用弹性数据库工具? 请查看入门指南。