Asp+Access 最大支持多少连接数

Asp+Access 最大支持多少连接数,第1张

Access 最多支持 255 个并发用户

Access 支持的最大数据库大小为 2 GB。

以上是理论,理论与实际是有很大差别的。

在实际应用中,数据库文件大小超过100M时就能感觉到性能明显下降。

关于并发用户的,250个并发用户,并不是说你网站只能由250个用户在线。

而是同时能执行250个查询语句。

在实际上网站能承受的同时在线人数,不好估计,因为和你网站查询数据库 *** 作多少有关系。

一般不考虑其他因素的情况下,几千上万人是没有问题的。

话说回来,你网站同时在线人数上万,呵呵,你早就该换数据库了。

1时候在使用Access文件的时候,随着增删改的不断的连续,会导致文件越来越大。即使手动删除或者使用delete语句删除了大量的数据记录,会发现文件的大小依然没有减掉,而且随着你再往里写数据,又会增大。

2产生这个现象的原因跟Access本身的机制有关,具体也不清楚,好像是有什么历史记录还是什么存储碎片。ACCESS数据库在进行删除 *** 作后,并不从该数据库中把数据清除掉,而是删除其索引相关的东西,虽然显示不出来,但是那些东西还是在文件中存在的,所以会引起ACCESS数据库文件越来越大。即使是我们不通过代码来访问access文件,而只是通过用户界面访问,随着文件的增大,也会带来一系列的问题。其症状包括:对象可能打开得更慢,查询可能比正常情况下运行的时间更长,各种典型 *** 作通常似乎也需要使用更长时间。更何况如果在网站应用中,采用的是Access作为数据库的话,这里就有了性能上的问题。文件越来越大,会影响查询的速度,而且ACCESS是采用独占方式工作的,也就是说一次只能一个进程打开这个数据库执行 *** 作,如果是多个用户的话就要"排队"了,所以ACCESS数据库如果变为很大的话,执行一个查询时间就会变长,而进程"排队"的等待时间也就会变得很久,专业型的数据库就不同,可以同时接收多个并发的访问,可以采用SQL数据库或其它大型并发数很强的数据库。

3但是很多时候我们是需要Access文件,往不同的地方拷贝的,比如说,一个Server上生成了一个Access文件,需要拷贝到另外的Server上,而且Server间如果网速不是很好的话,会需要很长的时间来传输这个文件。所以这时候我们希望这个文件在内容不变的前提下,越小越好。所以我们可以去除这个Access的冗余信息。

4Office Access本身就有这种功能,我们可以通过菜单找到这个工具,然后单击这个图标手动压缩。

5执行以下这几句代码就可以了。

首先引用C:\Program Files\Common Files\System\ado\msadoxdll,该DLL包含ADOX命名空间; 

接着引用C:\Program Files\Common Files\System\ado\msjrodll,该DLL包含JRO命名空间 

注意:如,导入dll不成功,手动把com组件 导入为 net组件,在用vsnet工具导入

///压缩修复ACCESS数据库,mdbPath为数据库绝对路径

        public void Compact(string mdbPath)

        {

            if (!FileExists(mdbPath)) //检查数据库是否已存在

            {

                throw new Exception("目标数据库不存在,无法压缩");

            }

            //声明临时数据库的名称

            string temp = DateTimeNowYearToString();

            temp += DateTimeNowMonthToString();

            temp += DateTimeNowDayToString();

            temp += DateTimeNowHourToString();

            temp += DateTimeNowMinuteToString();

            temp += DateTimeNowSecondToString() + "bak";

            temp = mdbPathSubstring(0, mdbPathLastIndexOf("\\") + 1) + temp;

            //定义临时数据库的连接字符串

            string temp2 = "Provider=MicrosoftJetOLEDB40;Data Source=" + temp;

            //定义目标数据库的连接字符串

            string mdbPath2 = "Provider=MicrosoftJetOLEDB40;Data Source=" + mdbPath + ";Jet OLEDB:Database Password=l1epc2";

            //创建一个JetEngineClass对象的实例

            JetEngineClass jt = new JetEngineClass();

            //使用JetEngineClass对象的CompactDatabase方法压缩修复数据库

            jtCompactDatabase(mdbPath2, temp2);

            //拷贝临时数据库到目标数据库(覆盖)

            FileCopy(temp, mdbPath, true);

            //最后删除临时数据库

            FileDelete(temp);

        }

有许多可以采用的方法,使用其中的一种或者全部都可以提高数据库的性能:

(1)运行性能分析器,在数据库设计方面提供可能的改进。执行“工具→分析→性能”命令(如图 5-34),在出现的文本对话框中,打开每个选项卡来显示各种数据库对象,并单击复选框来选择数据库对象进行分析。如果性能分析器能对你的数据库设计提供某些建议,则会出现在对话框中。

(2)只将表放在Web服务器上,而将其他的数据库对象(查询、窗体、报表、宏和模块)存储在用户的本地硬盘上,然后把本地数据库对象附加到存储在Web服务器中的表上。通过调整“刷新间隔”、“更新重试时间间隔”、“更新重试的次数”和“ODBC刷新间隔”设置,来避免记录封锁冲突。执行“工具→选项”命令,然后单击“高级”选项卡,改变所需的设置。

(3)可能的话,以独占方式打开数据库。如果正在执行的任务一次只由一个用户完成,则以独占的方式打开数据库,即使数据库文件被存放在网络文件服务器上也是一样。要想以独占方式打开网络上的数据库,执行“文件→打开”命令,单击“打开”按钮旁边的下拉箭头(在“打开”对话框的右下部分),从菜单中选择“以独占方式打开”。如果正在运行Access的工作站只有最小限度的内存(例如16MB),则应考虑将内存升级。Access在32MB内存中的运行速度比在16MB的内存中有显著的提高。

以上就是关于Asp+Access 最大支持多少连接数全部的内容,包括:Asp+Access 最大支持多少连接数、怎么解决ACCESS数据库太大造成运行慢的问题、如何提高Access数据库在网络上的运行速度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9811898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存