我有一种情况可以通过添加一个日期时间或ntext类型的列来解决。
就性能而言,哪种更好用。记录的数量超过60000.我正在考虑日期时间,因为我可以为它编制索引,但不确定ntext是否可以...任何建议或讨论将处理内存,速度更好......或任何其他性能问题?
更新:我要添加的列是独立的 - 一个是日期时间,另一个是文本,我可以通过让任何人解决问题,注意:我不是在尝试将datetime存储为ntext。
答案 0 :(得分:2)
如果数据是DATETIME
,请使用DATETIME
。
当您需要进行日期和时间操作时,查询文本字段时会遇到问题。
性能明智 - DATETIME
为8个字节,NVARCHAR
用于存储日期的时间会更长。需要日期/时间工作的操作需要使用NVARCHAR
字段进行转换,这比仅使用DATETIME
列更昂贵。
答案 1 :(得分:2)
60000条记录对SQL Server来说无关紧要 所以不应该有任何明显的区别。如果它是一个非常大的表(数以亿计的记录,以上......),可能会有所不同,但不会与您的数据量有关。
然而,正如其他人已经说过的那样:你可以使用datetime或ntext的声明对我来说听起来很奇怪。如果它确实是日期和/或时间值,请使用datetime
而不是ntext
!!!
修改强>
现在您已澄清您不希望在文本列中存储日期值:
我建议您使用datetime
列。这比表现明智的ntext
要好。
作为旁注:如果您更喜欢使用文字列,则应使用nvarchar(max)
代替ntext
。 ntext
速度较慢且已弃用。
答案 2 :(得分:1)
这是两个完全不同的领域。如果您需要存储日期使用日期时间,如果您需要存储文本使用varchar或长文本。不要将日期存储为文本!