Sur*_*ish 3 sql database sql-server performance
我想知道NULL值如何影响SQL Server 2005中的查询性能.
我有一个类似于这个(简化)的表:
ID | ImportantData | QuickPickOrder
--------------------------
1 | 'Some Text' | NULL
2 | 'Other Text' | 3
3 | 'abcdefg' | NULL
4 | 'whatever' | 4
5 | 'it is' | 2
6 | 'technically' | NULL
7 | 'a varchar' | NULL
8 | 'of course' | 1
9 | 'but that' | NULL
10 | 'is not' | NULL
11 | 'important' | 5
Run Code Online (Sandbox Code Playgroud)
而我正在对它进行查询,如下所示:
SELECT *
FROM MyTable
WHERE QuickPickOrder IS NOT NULL
ORDER BY QuickPickOrder
Run Code Online (Sandbox Code Playgroud)
因此,QuickPickOrder基本上是一个用于从较大列表中挑选出一些常用项目的列.它还提供了它们对用户显示的顺序.NULL值表示它不会显示在快速选择列表中.
我总是被告知数据库中的NULL值在某种程度上是邪恶的,至少从标准化的角度来看,但是它是否可以在WHERE约束中过滤掉不需要的行?
使用特定的数字值(如-1或0)来表示不需要的项目会更好吗?还有其他选择吗?
编辑: 该示例不准确地表示实际值与NULL的比率.更好的示例可能会为每个非NULL显示至少10个NULL.表大小可能是100到200行.它是一个参考表,所以更新很少见.
| 归档时间: |
|
| 查看次数: |
6006 次 |
| 最近记录: |