我有一个三层系统。当某些条件不可用时减少逻辑读取
- 的跟踪/监测分贝(这是在MSSQL)
- Web服务作为一个包装与该通信DB
- 寡妇服务执行实际的操作
窗户服务通常每分钟向Web服务发送一次请求,以查看是否有任何要处理的内容。如果在跟踪数据库的任何记录与状态为CREATED
过程被触发。
状态列有四个可能值
- REQUESTED
- CREATED
- FAILED
- 竣工
我创建该状态列的索引与在必要的细节INCLUDE列表,并且在状态为CREATED的记录中工作正常。
但是,如果Status没有创建记录,那么会导致该表中有大量逻辑读取。
当没有状态为CREATED的记录时,是否有减少逻辑读取次数的建议?
检查执行计划以验证索引是否按预期使用。如果查询计划显示正在按预期使用索引,则会期望少量逻辑读取。如果您提供“CREATE TABLE”,“CREATE INDEX”和查询,它可能会有所帮助。无论如何,考虑一个过滤索引WHERE'Status ='CREATED''。 – 2014-11-08 02:53:44