Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 读取性能:复制到另一个数据库与另一个表_Sql_Sql Server_Database Replication_Locks - Fatal编程技术网

Sql 读取性能:复制到另一个数据库与另一个表

Sql 读取性能:复制到另一个数据库与另一个表,sql,sql-server,database-replication,locks,Sql,Sql Server,Database Replication,Locks,我有一个SQL Server实例(通过Azure SQL托管),其中某个表当前获得大量(平均约10秒)的写操作,但没有读操作 我有一个要求,我现在需要读取这些数据中的一部分,其中读取涉及一次对这些行(0-100ish)执行聚合函数(求和、计数、最大值等) 注意:这些读取操作主要是按计划调用的,例如每日报告 我在这里担心锁争用,所以我正在寻找关于如何拆分此表并减少死锁、慢速查询等的建议 在我的脑海里,我想到的是: 执行夜间复制(快照)到另一个数据库,其中数据复制以读取所需的方式聚合 每晚在数据库上

我有一个SQL Server实例(通过Azure SQL托管),其中某个表当前获得大量(平均约10秒)的写操作,但没有读操作

我有一个要求,我现在需要读取这些数据中的一部分,其中读取涉及一次对这些行(0-100ish)执行聚合函数(求和、计数、最大值等)

注意:这些读取操作主要是按计划调用的,例如每日报告

我在这里担心锁争用,所以我正在寻找关于如何拆分此表并减少死锁、慢速查询等的建议

在我的脑海里,我想到的是:

  • 执行夜间复制(快照)到另一个数据库,其中数据复制以读取所需的方式聚合
  • 每晚在数据库上运行SQL作业,将数据聚合到另一个表
  • 我认为选项1最有意义。方法是什么

    如果有关系,这是目前写入db的数据结构:

    PostId   Timestamp            EventType
    ---------------------------------------
    1        2017-01-01 10:00:00  1
    1        2017-01-01 10:30:00  1
    1        2017-01-01 11:30:00  2
    2        2017-01-01 11:30:00  1
    
    基本上是一个跟踪/事件表

    以下是我想总结的内容

    PostId    Date         DetailViews    SearchViews
    ------------------------------------------------
    1         2017-01-01   2              1
    2         2017-01-01   1              0
    
    所以我只是想把每个跟踪记录汇总成每日统计数据。很简单

    有人能告诉我获得最可接受的阅读性能的最佳方法吗?我是不是想得太多了,一个简单的索引视图就可以了?提前谢谢

    编辑

    下面是sys.dm\u db\u wait\u stats的输出。有人能发现什么吗


    10次写入/秒并不是一个巨大的数字。在做出此类设计决策之前,我会在系统上测试您的新查询。不是索引视图-它会影响插入性能。只读摘要报告数据库的最直接路径是多维数据集(在您的案例中可能是SSAS表格)。无论你做什么,你都需要处理阅读方面的问题though@GordonLinoff即使第一次为每个“帖子”运行查询也需要3-20秒。在那之后是瞬间。查询计划到处显示索引查找。感觉像是在锁定/等待。有什么提示可以找出它慢的原因吗?或者这只是查询引擎正在预热缓存?@Nick.McDermaid我正在查看Power BI。但是有太多的数据(数以百万计)无法推送到那里。我想我需要先聚合数据。@RPM1984。如果查询第一次变慢,然后又变快,这表明缓存可能是个问题。