选择适当的数据类型
SQL Server 提供多种数据类型可供选择,你的选择可能会以多种方式影响性能。 尽管 SQL Server 可以自动转换某些数据类型(我们将其称为“隐式转换”),但转换成本高昂,并且可能会对查询计划产生负面影响。 另一种方法是显式转换,即可以在代码中使用 CAST 或 CONVERT 函数来强制进行数据类型转换。
此外,选择比所需大得多的数据类型可能会浪费空间,并且需要的页数将超过读取所需的页数。 为给定的数据集选择正确的数据类型非常重要,这将减少数据库所需的总存储,并提高所执行的查询的性能。
注意
在某些情况下,根本无法进行转换。 例如,日期不能转换为位。 转换可能会对查询性能产生负面影响,因为将导致可能进行查找的索引扫描,以及转换本身会产生额外的 CPU 开销。
下图指示了在哪种情况下 SQL Server 可以进行隐式转换,以及在哪种情况下必须显式转换代码中的数据类型。
SQL Server 为可以在表和查询中使用的所有数据提供了一组系统提供的数据类型。 SQL Server 允许在 T-SQL 或 .NET 框架中创建用户定义的数据类型。