【发布时间】: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