MS Access front-end: What are the risks? [closed]

只谈情不闲聊 提交于 2019-12-04 20:18:05
O. Gungor

Firstly, you should give yourself credit! You definitely don't sound inexperienced; quite the contrary. Your approach to building and maintaining a system sounds top notch. Regarding your limitation, it sounds like you need a reporting tool, and it sounds like Access is your only option. I know there is a comment here that suggests Oracle Apex, but I assume that is not an option for you. A product using native access methods to Oracle would most certainly perform better rather than Access, but that doesn't mean you have hit a dead end. Access is a powerful tool if you understand its limitations (and by that, I don't just mean the 2GB file size limit; I doubt you would run into that). Here are a few of suggestions that I can offer, and hopefully this doesn't sound foreign:

  1. If you have the ability to write your SQL as stored procedures or views inside Oracle, then do that.
  2. Don't link to tables in Oracle, that will be painfully slow.
  3. Don't use ADO to transfer data from Oracle to Access, that too will be slow, as it will require row-by-row handling.
  4. Use SQL pass-through queries to connect to Oracle and execute your stored procedures/views/SQL. This will be your fastest option, as Access only sends your query to the server to execute; it does not do anything itself to run it (or estimate how to run it).
  5. Try to perform all of your logic inside Oracle. Meaning, if you don't have the capability to write stored procedures, and say you need to create temporary tables, then do that in the oracle session, or inside the SQL script that you execute through the SQL pass-through query.
  6. If you need to transfer data to Access, try to limit it. You are probably aren't creating a 200-page report, so don't return data that you don't need to Access; utilize the server's processing power to your advantage.
  7. Let's assume you got all this done, and are now ready to distribute the Access file. Don't put the database on a network drive and share it with users. Give each user their own copy. Now, this topic in itself would be a long discussion, as things like version control come into play, but I won't get into that here. If the users can always go to a website and download a clean Access file each time they need to use it, then do that. If not, and they will always launch their local copy, you need to implement some cleanup routines of any local data in Access, followed by enabling the compact-on-close setting, so it removes the clutter that could affect performance.
  8. If your queries against Oracle don't perform well, and your reports end up being slow, don't be afraid to reach out for help. DBA's won't like anything you do that will affect their database performance, so utilize them for assistance with tuning your SQL.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!