避免使用非初始子串

为了实现最佳性能,避免对非初始字符串使用过滤器。基于列的非初始子串的过滤器要求数据库服务器测试列中的每个值。

例如,在以下代码中,非初始子串要求数据库服务器测试列中的每个值:
SELECT * FROM customer 
      WHERE zipcode[4,5] > '50'

数据库服务器无法使用索引来评估这样的过滤器。

对于测试索引列的起首子字符串的过滤器,优化器使用索引进行处理。 不过,进行子字符串测试会干扰使用组合索引来测试子字符串列和其他列。