0
我有客户端列表。有约。该表中有200万条记录。该表具有以下结构:数据库表优化
ID(int),FLM,电子邮件,地址,电话,BDAy;除BDay以外的每种nvarchar类型。
我在ID和FLM列上有两个非聚集索引。当我执行查询时,如
SELECT * FROM tbl where FLM LIKE 'value'
我遇到延迟约。 1分钟。因此问题:
- 在FLM上添加聚簇索引会改变性能吗?
- 我还能在这里优化什么?
我如何从程序中获得结果?使用SqlConnection
进行连接,然后在SQlCommand
对象中指定查询,然后通过DataReader
获取数据。也许在这里我可以优化这个来获得更好的结果(也许使用数据集)?
价值形式是什么?你使用通配符''%value%'?'吗? “展示计划”展示了什么?如果您在模式中使用初始%,我怀疑发生了表扫描。 – Ben
是的,我使用通配符,这就是为什么在查询like,not =语句。但即使我不使用通配符,我也必须等待很长时间。 – seeker
作为一个经验法则,表应该有聚集索引。您应该在列上创建具有大多数唯一行并且是增量式的聚集索引。聚集索引也不应该很宽,以避免在字符串列上有聚簇索引。 – sqlhdv