【问题标题】:SQL Server: is there a way to theoretically estimate retrieval time of a querySQL Server:有没有办法从理论上估计查询的检索时间
【发布时间】:2012-03-28 07:25:55
【问题描述】:

我将拥有一个包含超过 8000 亿条记录的数据库,

我将通过 SQL Server ONLY 查询数据库以检索记录,即仅 SELECT 查询。

我将检索 1 到 36,000,000 条记录,另外我还将考虑缓存 (36,000,000 x 8 ) 记录。

我正在寻找的是一些方法,通过它我可以估计 HOW MUCH TIME 将需要一个简单的 SELECT 查询 SQL Server(任何版本\版)取回 36,000,000(最坏情况)。

我的表很简单,只有 9 列\属性,它们都是 INT(整数)。

我需要事先了解这一点,然后才能填充我的数据库并设计我的应用程序,同时记住我是否必须依赖 SQL Server 或我的应用程序必须依赖巨大的缓存,因为响应慢是 不是选项。

额外说明

  • 此处不考虑网络连接和带宽。
  • 我无法通过编程检查经过的时间,因为 DB 是\can not 尚未填充。

编辑

为什么投反对票

【问题讨论】:

  • 这里的变量太多了,不好笑。如果不能使用查询和使用模式在架构中、硬件上填充您的数据,没有人能够给您任何接近猜测的信息。抱歉,从行数推断到查询时间的可靠估计并不涉及任何魔法。
  • 将所有变量放在一边,通过Eight Hundred Billion Records进行最坏情况搜索怎么样
  • 完全不知道,抱歉。你不能“把所有的变量都放在一边”——我的 8000 亿行看起来会和你的大不相同。

标签: sql-server data-retrieval elapsedtime


【解决方案1】:

不,抱歉,没有简单的灵丹妙药。如果您有一个合理的数据参考集并且可以忍受变化,那么您可以从其他查询中扣除,否则 - 不。人们通过调整来赚钱;)

【讨论】:

    【解决方案2】:

    用垃圾数据填充您的表格并打开统计信息。

    【讨论】:

    • anh... 3600 万条记录将生成图形表示,最大为 3600 x 3600 像素。
    • 明白了。下次您可能应该在问题中包含这些详细信息,以便人们了解您正在尝试做什么。
    • 老兄,我的问题不是人们是否会看这么多记录还是什么,我关心的只是返回时间。
    • 老兄,我第一句话就回答了。我什至修改了我的答案以使其更清楚。但是,如果您包含更多细节,人们也可能会建议替代解决方案,这可能是您没有想到的。但是,如果您只是在寻找一个 true|false - 好吧,您明白了。
    • 老兄,好吧,那就是垃圾数据……让我试试吧……12 TB 的垃圾数据……明白了。
    猜你喜欢
    • 2019-12-25
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    相关资源
    最近更新 更多