同步 SQL Server 数据库

2023-12-22

我有一个新的想法和问题想问你。

我们有一个本地/内部的 CRM 应用程序。我们使用 24X7 的应用程序类型。我们还在同一个 CRM 数据库(即 OLTP)上进行计费和工资管理,对于 SSRS 报告也进行同样的操作。

看起来每当我们在前端进行操作时,都会同时插入和更新几个实体,我们的应用程序会被冻结,直到该过程完成。例如提取 500 名员工过去 2 周内活动的工资。基本上,它总结了总工作时间,从数据库中提取这些数字,并写入/更新记录提取已完成的位置。因此,对于 500 名员工,我们一起查看大约 40K-50K 行的 Insert/Select/Update 语句。

当这个进程运行时,没有人可以做任何事情!我们正在考虑以下选项来解决此问题。

  1. 在非工作时间运行此过程
  2. 或者复制 Dyna 的数据库。 CRM 并在副本上执行此操作(提取数千条记录并运行多个报告)。

我的问题是:

  1. 首先如何创建副本以及在哪里创建副本(最佳实践)?
  2. 如何使其实时同步。
  3. 如果我们在复制数据库中执行 select 语句操作就可以了,但是如果我们在副本上执行任何插入/更新,如何在实际实时数据库中反映这一点? ,简而言之如何确保原始数据库和副本数据库实时同步。

我知道我问了太多问题,但作为 SQL 人员,进入 CRM 团队并提供建议,你知道我想说什么。

感谢大家提前提出的任何建议。


回答您关于数据库实时“副本”的问题,一个好的解决方案是alwayson可用性组。

https://blogs.technet.microsoft.com/canitpro/2013/08/19/step-by-step-creating-a-sql-server-2012-alwayson-availability-group/ https://blogs.technet.microsoft.com/canitpro/2013/08/19/step-by-step-creating-a-sql-server-2012-alwayson-availability-group/

尽管我认为这不是您在这种情况下想要的。 Alwayson 可用性组通常适用于需要极短故障时间范围的数据库实例。例如:如果集群中的主数据库服务器出现故障,它最多会在一两秒内故障转移到辅助数据库服务器,最终用户只会注意到一秒钟的轻微停顿。

我认为您会发现更好的是查看那些正在访问数据库服务器的插入语句,并了解它们为何阻止您提取数据。如果他们确实锁定了表,也许将大量读取更改为“nolock”读取可能有助于纠正您的情况。

了解您分配了哪些类型的资源以及您的数据库核心表是否有正确的索引也会很有帮助。如果您没有正确的索引,那么许多查询可能需要比正常情况更长的时间,从而导致锁定您的视图。

最后,如果您要拉取的表太大,我建议进行表分区。这可以帮助解决许多潜在的磁盘速度问题,如果您按时间段分区,还可以帮助优化您的查询(即每 X 个月创建一个新分区,这样当查询从一个时间段提取时,它们只从该一个数据文件中提取) 。

https://msdn.microsoft.com/en-us/library/ms190787.aspx https://msdn.microsoft.com/en-us/library/ms190787.aspx

我想说,您需要关注效率,而不是“复制数据库”,因为您的数量并不是很高,因此从声音来看,不需要类似的东西。我目前有一个 sql server 事务数据库,每天运行超过 1000 万次插入,而且我仍然有针对它的实时报告。您只需要资源和适当的索引来适应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同步 SQL Server 数据库 的相关文章

  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 我不断收到错误“关系 [TABLE] 不存在”

    我一直在尝试查询数据库中的两个表 在服务器资源管理器中 我可以看到两个表 甚至可以看到其中的列 我们将它们称为 Schema table1 和 Schema table2 其中 Schema 的第一个字母大写 我尝试运行以下查询 selec
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 如何使用 SQL Server 2008 将行复制到同一个表中

    A 到目前为止我的方式 sqlCommand CommandText INSERT Table1 column1 column2 column3 SELECT column1 column2 column3 FROM Table1 WHER
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR
  • 基于多个表的数据更新单个表 SQL Server 2005,2008

    我需要更新表one使用表中的数据two 表一和表二没有任何公共列相关 桌子three与表相关two 例如 表一 reg det 表 reg det id reg id results 101 11 344 表二 临时表 venue resu
  • JDBC 和多线程

    我正在尝试使用多线程方法运行一些查询 但是我认为我做错了什么 因为我的程序需要大约五分钟来运行一个简单的选择语句 例如 SELECT FROM TABLE WHERE ID 123 我的实现如下 我使用一个连接对象 在我的运行方法中 pub
  • 使用默认路径中的文件创建数据库

    我想创建一个创建数据库的 SQL 脚本 现在 我有这个 CREATE DATABASE Documents ON PRIMARY NAME N Documents FILENAME N Documents mdf LOG ON NAME N
  • 在 MySQL 中将值设置为 NULL

    我想要一个值被设置为NULL如果我提交的表单中的文本框中没有输入任何内容 我怎样才能做到这一点 我试过插入 NULL 但这只是添加了这个词NULL进入现场 我不确定我应该为此提供什么代码 我只是编写一个 UPDATE 查询 不要放NULL更
  • 在 SQL Server 中选择 XML 元素

    我有一些 XML 需要使用 SQL Server 2008 进行解析 我想我已经接近得到我想要的了 但是我没有正确的语法 我相信 我有以下内容 DECLARE doc XML SET doc
  • SQL Server 是否在复杂视图中传播 WHERE 条件?

    我在这个问题之后提供了一个完整的示例 以防不清楚我的问题的意思 我创建了一个视图 它连接了大约五个表中的数据 这些表包含大量数据 查询运行速度很慢 我的问题是 如果我这样做 SELECT FROM myView WHERE PersonID
  • 从逗号分隔的字符串中删除重复项 (Amazon Redshift)

    我正在使用亚马逊红移 我在该字符串中有一个列存储为逗号分隔 例如Private Private Private Private Private Private United Healthcare 我想使用删除其中的重复项query 所以结果
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty
  • 如果字符串包含数字,则仅返回字符串中的数字

    例如 字符串是abc123CD需要找到一种只读方法numbers在字符串中i e select a postgres function abc123CD Result 123 My try select substring abc123CD
  • 批量插入,asp.net

    我需要获取与会员相对应的 ID 号列表 在任何给定时间处理的数量可能在 10 到 10 000 之间 我可以毫无问题地收集数据 解析数据并将其加载到 DataTable 或任何内容 C 中 但我想在数据库中执行一些操作 将所有这些数据插入表
  • PostgreSQL 位图堆扫描索引非常慢,但仅索引扫描很快

    我创建了一个包含 43kk 行的表 并用值 1 200 填充它们 因此 表中每个数字大约为 220k create table foo id integer primary key val bigint insert into foo se
  • SQL Server 列的默认随机 10 个字符串值

    我有一个专栏rndm在我的桌子上 客人 现在 对于领域Default value or Binding对于表 每当插入新行时 我想自动将 10 个字符的随机字符串插入到该列中作为默认值 该随机字符串不能包含特殊字符 只能包含以下字符a zA

随机推荐

  • 为注释字段设置默认空值时出错

    为什么我收到错误 属性值必须是常量 不是null持续的 Target ElementType TYPE Retention RetentionPolicy RUNTIME public interface SomeInterface Cla
  • 尝试从 matlab 调用 dll 函数导致崩溃

    我尝试在 MATLAB 中使用第三方外部 DLL 来自 usbmicro 但它总是使 MATLAB 崩溃 这是来自说明 C 程序中函数调用语法的文档 int USBm About char about 我尝试了这个 MATLAB 脚本 是的
  • 如何在受限服务器上安装 Perl 模块?

    我有一个可以通过 ssh 连接的服务器 但仅此而已 否则它就完全与外界隔绝了 我正在尝试部署一些我编写的脚本 但它们有几个 Perl 依赖项 Params Validate XML Simple 等 我无法通过 yum 获取它们 因为我们的
  • preStart 钩子:给 actor 本身的消息

    假设我覆盖了preStart挂接并发送消息至self Class SomeActor extends Actor override def preStart Unit self SomeMessage 我可以期待吗SomeMessage将是
  • Android:TabLayout 不工作

    我正在尝试官方开发人员网站上的 TabLayout 教程 我没有复制粘贴它 也没有对其中的拼写错误进行一些细微的更改和更正 package com org example import android app TabActivity imp
  • 将希腊字符添加到轴标题

    我想在 R 中的条形图的 y 轴上添加一个希腊字符 问题是我需要将这个角色整合到标题中 我想写 Diameter of aperture mu m 在轴标签中 With ylab expression 我可以写希腊字符 ylab axis
  • 如何在类组件中使用useMediaQuery

    当使用函数作为组件时 您可以使用useMediaQuery来自 Material ui 的钩子 然而 它没有向您展示如何在类中使用这个钩子 所以我做了一些研究 发现你可以通过这样做在课堂上使用它 import React from reac
  • python 将字符串转换为参数列表

    我可以在 python 中将字符串转换为参数列表吗 def func args for a in args print a args a func a 2 b 3 I want the following work like above c
  • 如何使用 PHP 确定文件年龄?

    有什么方法可以使用 PHP 确定文件夹中图像的文件年龄 我想删除超过 2 小时的旧文件 是否可以在上传到文件夹时在其文件名中添加时间戳名称 如果是这样 请给我一个例子 thanks if time filemtime filename gt
  • 如何知道missModalViewControllerAnimated何时启动以及何时完成?

    有没有办法知道dismissModalViewControllerAnimated何时启动以及何时完成 例如viewWillAppear和viewDidAppear的习惯用法 与其他动画不同 这个动画似乎没有委托来告诉您 是的 而且比你想象
  • Sklearn Chi2 用于特征选择

    我正在学习 chi2 用于特征选择 并遇到了类似的代码this https chrisalbon com machine learning feature selection chi squared for feature selectio
  • 如何让 Mockito 模拟另一个文件中的常量?

    编辑 我正在测试的方法调用在另一个类中定义的这个常量 所以我想测试该方法是否独立于其他类定义常量的方式工作 嘲笑它是我能想到的第一件事 但我对如何以干净 安全的方式测试它的其他想法持开放态度 类 方法和变量名称已泛化 我正在尝试弄清楚如何编
  • 带 wamp 的国际扩展 php_intl.dll

    我想使用Moodle 但在安装过程中出现错误 应该安装并启用 php extension gt intl gt 以获得最佳结果 Intl 扩展用于改进国际化支持 例如区域设置感知排序 当我点击链接时 我收到上面的错误消息 http docs
  • C - 删除递归函数中的重复结果

    我必须创建一个递归函数 告诉您可以将多少美分变成零钱的方法 使用 25 美分 10 分 5 分 5 分 5 分硬币 到目前为止 我有一个递归函数可以做到这一点 但是它多次计算相同的组合 所以数字太大了 如何删除重复的组合 Code incl
  • PHP cURL 如何添加用户代理值或克服服务器阻止 cURL 请求?

    我正在传输一个对象数组 我有一个自己的服务器上的 cURL 客户端 提交者 and 监听别人服务器上的脚本 哪一个不在我的控制之下 然后我认为他们正在阻止传入的 cURL 请求因为当我用普通 HTML 测试时
  • 如何阻止无效用户的 git 提交?

    我正在运行一个gitlab https www gitlab com gitlab ce git 服务器 我的大多数用户都运行 3 个版本中的 1 个版本的 git git 1 7 1 centos 用户 git 1 7 9 其他人 git
  • Firefox 特定 CSS 导致 Visual Studio 中出现多个错误

    在 Visual Studio 2012 中 我尝试在我的外部样式表之一中使用以下 Firefox 特定 CSS moz document url prefix span4 ul li a focus border none span12
  • .Net 和 PHP Rijndael 加密不匹配

    起初我以为这是填充 因为 mcrypt 使用零填充 但我更改了 php 以使用 PKCS7 并得到了相同的精确结果 有人可以帮忙吗 我认为这与php中的填充有关 Net 的测试输出 Key d88f92e4fa27f6d45b49446c7
  • 跟踪图像中的一条线 MATLAB

    我正在编写一个程序来计算示波器输出的一些内容 但随着程序现在的运行 我只需将图像导入 MATLAB 然后使用 ginput 查找生成的曲线上各个区域的坐标 有没有一种方法可以让我拍摄这张图片 并让 ginput 或类似的东西自动沿着亮绿色曲
  • 同步 SQL Server 数据库

    我有一个新的想法和问题想问你 我们有一个本地 内部的 CRM 应用程序 我们使用 24X7 的应用程序类型 我们还在同一个 CRM 数据库 即 OLTP 上进行计费和工资管理 对于 SSRS 报告也进行同样的操作 看起来每当我们在前端进行操