【问题标题】:SQL Server Performance Issue while Selecting all records?选择所有记录时出现 SQL Server 性能问题?
【发布时间】:2018-02-24 06:12:29
【问题描述】:

如果我们不对查询实施任何过滤器,有哪些技术可以提高查询的性能? 对我来说,包含 20 列的 3600 万条记录(11 GB)需要 11 分钟才能从表中提取所有记录。 现在是明智的时机吗? 索引是否可以帮助我提高性能? 我正在使用 SQL 2008 服务器。 有什么技巧可以缩短时间?

【问题讨论】:

  • 如果没有任何过滤器,索引将无济于事。你拉整张桌子吗?所有列的所有记录?如果是这样:为什么?
  • 如果要拉整个表,则需要最小化磁盘访问。一种方法是使用 INMemory OLTP
  • 我将其用作可视化的数据层,可视化工具将整个数据拉到内存中。所以我只是确保加载时间是合理的,或者在数据库方面有什么事情要做吗?
  • 如果您将所有数据提取到应用程序内存中(本地还是在同一服务器上?),那么根据我的经验,11 分钟可能不会太远。我想这就是将它放在内存中的原因,以便您的工具然后尝试优化,以便它在内存中运行一次?
  • 这是在 SQL 中执行查询所需的时间,我只是在想是否可以通过升级系统或进行任何优化来改善这一点..

标签: sql performance sql-server-2008 tsql


【解决方案1】:

最好知道您使用的是哪种语言。您也许可以跨多个线程并行读取数据

例如每组 10 个线程读取 360 万条记录。

或者,根据您的数据结构,您可以使用索引或键来允许每个线程读取特定范围内的数据

例如线程 1 读取 2017 年的值,线程 2 读取 2016 年的值等

这种方法在我之前使用 MS SQL Server 和分区视图时很有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多