在SQL中创建函数索引
我最近的一个项目出现需要能存放超过18位的数字,好比是我们的身份证再次升级,这样C#中的DECIMAL就不能满足要求
这样只要在程序段做数字型校验后,数据库存放的格式则是NVARCHAR(30)或类似的。
然而这样,如果存在范围检索的话,系统将会比较慢,特别是ASP的网站程序
因此对这种存放超长数字的字段,我们可以建一个函数索引,然后在查询的时候,强制其使用该索引即可。
但是SQL好像不提供函数索引,因此想到了下面的方法(是同事想到的):
创建一个字段,然后在公式中输入相应的处理方式,这里是将其转换成为DECIMAL的数值
然后在查询的时候加上WITH(INDEX(XXXXXX))的语句,这样查询速度就是飞快了