如何优化查询和记录集

  1. 在“临时”查询联接,限制和排序中使用的所有列上创建索引(Jet已为强制关系创建索引)。
  2. 尽可能使用主键而不是唯一索引。
  3. 尽可能使用唯一索引而不是非唯一索引。
  4. 在结果集中包括尽可能少的列。
  5. 不要在查询中使用表达式,例如IIf()。
  6. 使用Count(*)代替Count([column])。
  7. 在限制子句中使用between运算符,而不要使用无限制的>,> =,<,<=限制(在35和50之间,而不是> = 35)。
  8. 标准化表格。
  9. 尽可能避免使用外部联接,因为需要对外部表进行完整扫描。
  10. 对于非平凡的查询,请使用已保存的查询而不是SQL,因为它们已经过优化。
  11. 如果您使用ADO基于SQL字符串创建记录集,请指定adOpenDynamic光标类型值。 由于Jet不支持此Cursor,它将专门处理此游标,从而为SQL字符串提供最佳性能。
  12. 创建检索Jet数据的ADO记录集时,请勿为记录集的光标位置指定adUseClient。
  13. 当表的大小或索引的存在或类型改变时,手动重新编译查询。
  14. 如果可能,请使用“操作查询”,而不要在VBA中遍历记录集以更新或删除数据批。
  15. 当您需要使用DAO快照记录集或使用ADO的静态记录集时,请使用正向滚动快照或使用ADO的仅向前记录集。
  16. 当您只希望将新行添加到记录集时,请使用dbAppendOnly选项打开记录集。
  17. 使用客户端/服务器源创建查询时,请考虑使用直通查询。
  18. 运行非常大的操作查询时,请将查询的“使用事务”属性设置为False。
  19. 如果要使用DAO或ADO代码添加许多单行,请尝试使用dbOpenTable或其等效的ADO adCmdTableDirect打开Recordset。
  20. 通常,更新非索引列中的数据更快。 您可能要删除索引,执行更新,然后重新添加它们。
  21. 不要过度索引,而是要使用索引字段进行排序,搜索或联接。
  22. 不要索引包含高度重复的信息的列。

From: https://bytes.com/topic/access/insights/629397-how-optimize-queries-recordsets

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值