由于此以前发布会议讨论时,可能需要使用CHAR在VARCHAR指出,一个能获得性能优势时存储的值大致相同的长度.当然,我会选择CHAR作为存储2个字符的状态代码数据的数据类型.
我只想确认一个完整性检查,这意味着当一个人执行一个过滤此列的SQL时,必须用足够的空格填充过滤的值,使其等于char字段的定义长度.
例如,假设表"CODE_TABLE",其中列10_CHAR_CODE被定义为CHAR(10):
SELECT*FROM CODE_TABLE WHERE 10_CHAR_CODE ='ABCDE'
并且如果10_CHAR_CODE是另一个表的"逻辑"外键但是不存在特定的关系完整性约束,则存储在10_CHAR_CODE查找表中的值理想情况下应该具有相同的数据类型(Char(10)以避免必须执行低效率加入时RTRIM功能.
(我们有一个婴儿大小的数据仓库,而且DBA认为参照完整性约束效率低下,因此我们最终会在表之间对数据进行不一致的数据类型定义.)
我的印象准确吗?