大佬教程收集整理的这篇文章主要介绍了ms-access – 为什么Select * Faster比Microsoft Access DB中的Select Top 1更快,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
SELECT TOP 1 BlockID FROM AvailabilityBlocks ORDER BY BlockID;
“BlockID”字段是主键并被索引.
但是当我运行以下查询时,它会在不到2秒的时间内返回:
SELECT BlockID FROM AvailabilityBlocks ORDER BY BlockID;
我已经尝试重建索引,甚至做了一个紧凑和修复,并没有产生任何影响.
任何帮助或见解都将非常感激!
此处的观察结果在一个4百万行的MS-Access数据库中重现,用于将CSV导入传输到sql服务器.
当选择具有排序顺序的所有未索引字段时,MS-Access需要3分钟才能执行.选择所有索引字段时,它需要分秒.当选择索引字段的TOP 1时,它再次花费3分钟,这证明该函数没有使用可用索引.作弊(SELECT TOP 1 BLOCKID FROM(SELECT BlockID FROM AvailabilityBlocks ORDER BY BlockID)也没有使用索引,也需要3分钟.
我的解释是MS-Access具有原生的“喷气引擎”功能,可以接受某些用途(我仍然在一些轻量级网站上使用MS-Access). ‘jet引擎’支持视觉查询设计屏幕的所有功能.从Office 2007开始,添加了另一层功能,以使sql语言与T-sql兼容.
‘TOP 1’语句是其中一个’新’函数.如您所见,视觉设计不支持它.很明显,没有创建此函数来使用现有索引.
您可以在“Access for options”中将代码限制为喷气引擎功能 – > ‘为对象设计’ – > ‘查询设计’ – > ‘与sql服务器的兼容性(ANSI 92).
保护您在MS-Access中投资的另一个选择是将数据迁移到ODBC数据库(MysqL,sql服务器,Oracle …),并仅将MS-Access用作前端.然后可以通过更优化的引擎呈现具有“顶部1”的视图.
以上是大佬教程为你收集整理的ms-access – 为什么Select * Faster比Microsoft Access DB中的Select Top 1更快全部内容,希望文章能够帮你解决ms-access – 为什么Select * Faster比Microsoft Access DB中的Select Top 1更快所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。