【问题标题】:SQL Server 2012 large table column performanceSQL Server 2012 大表列性能
【发布时间】:2016-05-27 13:33:13
【问题描述】:

我是一名报表分析师,也是 SQL Server 的“新手”。我有一个视图加入 2 个具有 100 列的表 - 50 个是 NVARCHAR(255) Null 默认值,所有其他的都是 int 或 float。

表最多可包含 100 万行,使用 SQL Server 提取数据时性能非常糟糕,需要一个小时并且内存不足。我的大部分NVARCHAR(255) 实际上在原始表中限制为 10 和 50 个字节,因此不需要 255。排除任何 SQL 连接问题,将 50 的列大小减少到真正的限制是否有任何性能优势?

我在论坛中看到了不同的数据:一些文章表明,通过减少此数据,我可以获得一些页面大小性能优势,因此数据是“IN-ROW”。

相反,我读过 NVARCHAR(255) 仅提取 10 或 50 的实际数据大小,这不会导致性能问题。

请帮忙?

谢谢大家!

叛逆

【问题讨论】:

  • 欢迎来到 SO!不相关,但建议:这听起来像 很多 数据要包含在这么少的表中 - 如果/当你有时间时,考虑查看 database normalization

标签: sql-server-2012 multiple-columns large-files nvarchar


【解决方案1】:

根据我在 StackOverFlow 上找到的内容,我建议您将 NVARCHAR 调整为更合理的数字,同时仍考虑未来的需求。

以下链接详细介绍了该主题。我会这样总结——在确定所需内存时,SQL 的某些部分使用最大可能大小。

is-there-an-advantage-to-varchar500-over-varchar8000

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 1970-01-01
    • 2011-03-17
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多