RDS SQL Server通过配置镜像为高性能模式提高写入性能

简介: RDS SQL Server通过配置镜像为高性能模式提高写入性能

场景描述


在业务使用过程中,经常遇到写入量突然增大的场景。在这时,可以考虑经通过配置RDS SQL Server镜像同步模式,而又能承担少量数据丢失的风险,可以将镜像模式配置为高性能模式,来临时缓解降低写入压力。


适用SQL Server版本范围


支持RDS SQL Server高可用(企业)版本(不包含本地盘版本)


SQL Server镜像技术


数据库镜像是一种提高SQL Server数据库可用性的解决方案。镜像是在每个数据库的基础上实现的,并且只适用于使用完全恢复模型的数据库。


镜像技术概述


  1. 数据库镜像维护在两个不服务器维护两数据一样的副本,在数据库启动通过镜像会话来保护数据同步。


  1. 主实例提供给客户端服务,备实例充当热备,当需要切换角色时,可以通过故障转移,快速将备实例切换成主实例。


  1. 数据库镜像涉及尽可能快地将主数据库上发生的每个插入、更新和删除操作重做到镜像数据库。重做是通过向镜像服务器发送活动事务日志记录流来完成的,镜像服务器会按顺序尽快地将日志记录应用到镜像数据库。


数据库镜像的优点


  1. 提高了数据库高可用性
    在灾难发生时,在具有自动故障转移的高安全模式下,故障转移将快速使数据库的备用副本联机(不会丢失数据)。在其他操作模式中,数据库管理员可以选择将服务强制转移到数据库的备用副本(可能导致数据丢失)。


  1. 提高了数据库高安全性
    数据库镜像提供完全或几乎完全的数据冗余,这取决于操作模式是高安全的还是高性能的。


  1. 在升级期间提高生产数据库的可用性
    要尽量减少镜像数据库的停机时间,可以依次升级承载故障转移合作伙伴的SQL Server实例。这将只导致单个故障转移的停机时间。这种升级形式称为滚动升级。

什么是高性能模式和高安全模式


  1. 高性能模式(异步运行):事务不需要等待镜像服务器将日志写入磁盘便可提交,这样可最大程度地提高性能。这意味着事务不需要等待镜像服务器将日志写入磁盘便可提交,而此操作允许主体服务器在事务滞后时间最小的条件下运行,但可能会丢失某些数据

  1. 高安全模式(同步运行):当会话开始时,镜像服务器使镜像数据库尽快与主体数据库同步。一旦同步了数据库,事务将在双方提交,这会延长事务滞后时间。


如何配置高安全模式

  1. 查看数据库版本
select @@version;# 结果中包含如下信息为企业版本
# "Enterprise Edition"


  1. 查看当前数据镜像模式
select db_name(database_id),mirroring_safety_level,mirroring_safety_level_desc from sys.database_mirroring;# 字段:mirroring_safety_level_desc 值:OFF 为高性能
# 字段:mirroring_safety_level_desc 值:FULL 为高安全
# 字段:mirroring_safety_level_desc 值:NULL 没有镜像


  1. 配置高性能模式
alter database db01 set partner safety off;


  1. 关闭高性能,配置高安全模式
alter database db01 set partner safety full;


  1. 简单模拟写入测试
create database db01;use db01;createtable t1(id int, name varchar(50));DECLARE @num INT;DECLARE @count INT;SET @count =1;SET @total_count =100000;WHILE @count <= @total_count
BEGINinsertinto t1(id, name)values(@count,'abc');SET @count = @count +1;END;


结果:高性能模式写入10万条记录为34秒,高安全模式写入性能为91秒;大概提升3倍左右。


相关技术文档

SQL Server 不同版本支持的功能

SQL Server镜像技术

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL Oracle 关系型数据库
MySQL的sql_mode模式说明及设置
MySQL的sql_mode模式说明及设置
1533 112
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1691 152
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1125 156
|
10月前
|
SQL 关系型数据库 MySQL
为什么这些 SQL 语句逻辑相同,性能却差异巨大?
我是小假 期待与你的下一次相遇 ~
384 0
|
12月前
|
SQL 容灾 安全
云时代SQL Server的终极答案:阿里云 RDS SQL Server如何用异地容灾重构系统可靠性
在数字化转型的浪潮中,数据库的高可用性已成为系统稳定性的生命线。作为经历过多次生产事故的资深开发者,肯定深知传统自建SQL Server架构的脆弱性——直到遇见阿里云 RDS SQL Server,其革命性的异地容灾架构彻底改写了游戏规则。
|
SQL 关系型数据库 PostgreSQL
CTE vs 子查询:深入拆解PostgreSQL复杂SQL的隐藏性能差异
本文深入探讨了PostgreSQL中CTE(公共表表达式)与子查询的选择对SQL性能的影响。通过分析两者底层机制,揭示CTE的物化特性及子查询的优化融合优势,并结合多场景案例对比执行效率。最终给出决策指南,帮助开发者根据数据量、引用次数和复杂度选择最优方案,同时提供高级优化技巧和版本演进建议,助力SQL性能调优。
1516 1
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
827 0
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
SQL 关系型数据库 OLAP
云原生数据仓库AnalyticDB PostgreSQL同一个SQL可以实现向量索引、全文索引GIN、普通索引BTREE混合查询,简化业务实现逻辑、提升查询性能
本文档介绍了如何在AnalyticDB for PostgreSQL中创建表、向量索引及混合检索的实现步骤。主要内容包括:创建`articles`表并设置向量存储格式,创建ANN向量索引,为表增加`username`和`time`列,建立BTREE索引和GIN全文检索索引,并展示了查询结果。参考文档提供了详细的SQL语句和配置说明。
696 2
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。