当前位置: 首页 > 面试题库 >

在SQL Server中对大型表进行分区的最佳方法是什么?

虞祯
2023-03-14
问题内容

在最近的项目中,“主要”开发人员设计了一种数据库模式,其中“较大”的表将被拆分成两个单独的数据库,并在主数据库上具有将两个单独的数据库表合并在一起的视图。主数据库是从应用程序中删除的数据库,因此这些表看起来和感觉都像普通表(除了一些有关更新的古怪事物)。这似乎是一个巨大的性能问题。我们确实在这些桌子周围发现了性能问题,但是没有什么可以让他改变对设计的想法。只是想知道什么是最好的方法,或者它是否值得?


问题答案:

我不认为通过在单个服务器中的多个数据库之间划分表来真正获得任何收益。您实际上所做的所有事情都增加了首先使用“表”的开销,因为在单个SQL
Server实例下具有多个实例(即在两个不同的DB中打开)。

您有多少个数据集?我有一个客户,在SQL Server中有一个600万行表,其中包含2年的销售数据。他们在交易中使用它并进行报告,而没有任何明显的速度问题。

当然,调整索引并选择正确的聚集索引对于性能至关重要。

如果您的数据集确实很大,并且您希望进行分区,那么在物理服务器之间对表进行分区时,您将获得更多收益。



 类似资料:
  • 问题内容: 我可以访问一组文件(每个文件约80-800mb)。不幸的是,每个文件中只有一行。该行仅包含一个JSON对象(列表列表)。加载并将其解析为较小的JSON对象的最佳方法是什么? 问题答案: 这是他们提出的解决方案:

  • 问题内容: 这个问题已经在这里有了答案 : 将巨大的(95Mb)JSON数组拆分成较小的块? (4个答案) 5天前关闭。 我可以访问一组文件(每个文件约80-800mb)。不幸的是,每个文件中只有一行。该行仅包含一个JSON对象(列表列表)。加载并将其解析为较小的JSON对象的最佳方法是什么? 问题答案: 已经有一个类似的帖子在这里。这是他们提出的解决方案:

  • 问题内容: 我有一个应用程序,它读取带有大量数据行的CSV文件。我根据数据类型为用户提供了行数的摘要,但我想确保不会读取太多的数据行并导致OutOfMemoryErrors。每行转换为一个对象。有没有一种简便的方法以编程方式找出该对象的大小?是否有一个引用定义了一个原始类型和对象引用有多大VM? 现在,我的代码可以读取多达32,000行,但我还想让代码显示尽可能多地读取行,直到使用32 MB内存为

  • 问题内容: 我们使用的是MySQL 5.0版,大多数表都是InnoDB。我们运行复制到从属服务器。我们正在考虑每天备份MySQL日志文件。 还有其他不使用日志文件进行增量备份的方法吗? 进行增量备份时的最佳做法是什么? 问题答案: AFAIK进行增量备份的唯一方法是使用二进制日志。如果要执行完整备份(InnoDB hotcopy),则还有其他选择,但是增量备份意味着您需要记录所有已完成的事务。 您

  • 问题内容: 我有mongodb和NodeJs。通过mongoosejs完成连接。 开发Ajax Infinity滚动的最佳方法是什么?我应该使用极限和偏移量吗? 问题答案: 当您对数据集进行分页时,“跳过并限制”方法不是很有效。它实际上是Shlemiel Painter的算法 。 范围查询效率更高(当索引支持时)。例如,假设您正在显示推文。您的页面大小是20,您在第1000页上,并且想要加载第10

  • 问题内容: 用jQuery删除表行的最佳方法是什么? 问题答案: 你是对的: 如果您的行中包含,则此方法很好用,例如: 如果没有,则可以使用jQuery的大量选择器中的任何一个。