当前位置:首页 » 编程语言 » access链接sql两表对比慢
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

access链接sql两表对比慢

发布时间: 2022-11-13 06:57:52

㈠ Access数据库sql执行速度问题,求高手解答!!

这错误很明显是找不到路径,
如果你使用的是dbq参数来打开数据库,那你就必须要使用server.mappath(path)方法,映射其完整物理路径(不要问为什么,规定就这样,没办法的事~)
如:
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver=;dbq=" & DBPath
另外,站长团上有产品团购,便宜有保证

㈡ asp数据库由access转换为sql后速度变慢

这是由于access对于数据的处理已经过加工和优化。
转换成SQL后,速度变慢很可能时因为没有很好的处理分页问题引起的,即每次读取的数据量过大。每页需显示多少,则只从数据库读取多少条记录,而不是一次读取20W+的数据量。
比如每页显示100条数据,按ID降序排列显示,则:

第1页的SQL语句select top 100 * from TABLE order by ID DESC

第2页的SQL语句select top 200 * from TABLE where ID NOT IN(select top 100 * from TABLE order by ID DESC) order by ID DESC

第3页的SQL语句select top 300 * from TABLE where ID NOT IN(select top 200 * from TABLE order by ID DESC) order by ID DESC
...
第N页的SQL语句select top 100*N * from TABLE where ID NOT IN(select top (N-1)*100 * from TABLE order by ID DESC) order by ID DESC

如果写成存储过程,性能更佳。

㈢ access数据库转换成sql的,连接好数据库之后不知道为什么很慢

sql访问第一次读取是比较慢,正常的,会有缓存第二次就会很快了,如果每次都很慢,就是有问题了,你这全是前台代码,要看new.asp页里的代码写的有没有问题。

㈣ 怎么解决ACCESS数据库太大造成运行慢的问题

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

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

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

5.执行以下这几句代码就可以了。
首先引用C:Program FilesCommon FilesSystemadomsadox.dll,该DLL包含ADOX命名空间;
接着引用C:Program FilesCommon FilesSystemadomsjro.dll,该DLL包含JRO命名空间
注意:如,导入dll不成功,手动把com组件 导入为 .net组件,在用vs.net工具导入

///压缩修复ACCESS数据库,mdbPath为数据库绝对路径
public void Compact(string mdbPath)
{
if (!File.Exists(mdbPath)) //检查数据库是否已存在
{
throw new Exception("目标数据库不存在,无法压缩");
}
//声明临时数据库的名称
string temp = DateTime.Now.Year.ToString();
temp += DateTime.Now.Month.ToString();
temp += DateTime.Now.Day.ToString();
temp += DateTime.Now.Hour.ToString();
temp += DateTime.Now.Minute.ToString();
temp += DateTime.Now.Second.ToString() + ".bak";
temp = mdbPath.Substring(0, mdbPath.LastIndexOf("\") + 1) + temp;
//定义临时数据库的连接字符串
string temp2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + temp;
//定义目标数据库的连接字符串
string mdbPath2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPath + ";Jet OLEDB:Database Password=l1epc2";
//创建一个JetEngineClass对象的实例
JetEngineClass jt = new JetEngineClass();
//使用JetEngineClass对象的CompactDatabase方法压缩修复数据库
jt.CompactDatabase(mdbPath2, temp2);
//拷贝临时数据库到目标数据库(覆盖)
File.Copy(temp, mdbPath, true);
//最后删除临时数据库
File.Delete(temp);
}

㈤ access 数据库速度慢的原因是什么

问题在于Access 本身
SQL, Sybase, Oracle等大型数据库管理系统, 不仅在管理大容量数据库时性能好,速度快. 更重要的是在并发处理有优势.而并发处理对于数据库管理系统是最重要的, 你想新浪, 网络等这些网站, 同一时刻有多少人在访问啊, 数据库要同时快速响应多个用户的数据处理请求显得尤为重要.
你单位的局域网至少应该是百M的吧 , 所以网速应该不是问题; 就服务器本身的配置而言, 性能也应该满足了; 在一个客户端的情况下, 能够快速的访问, 表明跟客户端配置也没有关系; 所以可以认为, 是由于Access本身对于并发处理的性能低下, 才导致以上问题. 建议你可以装个SQL Server2005, 用它可以把Access的数据库转换为Sql server数据库, 当然你程序中和数据库相关的连接, 访问语句也要改一下.
PS: 你文中所讲的"生产管理系统", 可能将来也不止在两个客户端上访问, 当将来客户端越来越多的时候, 这个问题会更加明显. 所以建议你及早升级到 SQL Server, 毕竟Access只是个桌面型的数据库, 并不适合应用在这种场合下. 另外, 个人认为建虚拟盘并不会有太大的性能改善.

㈥ Access查询为什么越来越慢

可能导致速度慢的原因很多,例如:

1.检索出来的数据量确实太大;
2.数据库的数据结构设计不佳;
3.SQL语句设计优化不佳;
4.网速慢、带宽被限制或并发用户量太多;
5.服务器、交换机、用户电脑等硬件性能不好;
6.其它N多理由......。

导致变慢的原因很多,可能是一种或多种原因综合造成的。

不过根据楼主的描述来看很可能是你们的IT部门改变了网络参数所致。例如变更了服务器的IP地址、网段、服务器名等等,很多情况下因为有交换机内部的自学习机制,一开始运行会比较慢,经过一段时间使用后速度又会正常,但是某些情况下,速度始终回不到从前的水平。这时可以尝试删除ACCESS里原有的MSSQL链接表,再重新链接回来这些MSSQL表。这样做通常都会使得查询的运行速度回恢复正常。不妨尝试一下,希望能帮到你。

㈦ ACCESS数据库关联两个表速度慢的问题,求优化方案! 卡号后8位相同的两个表的数据关联起来,数据2万条以上

Right(Table1.Card,8) 用不到索引 当然慢了

你如果有这样的设计需求 就应该用 空间换取时间 的做法

对两个表都增加一个列 这个列就存 卡号后 8位 然后对这个列做索引 聚集或者非聚集 看你具体情况

㈧ SQL和ACCESS哪个速度更快

access有极限,sql可以完全修复这些问题~一旦access上了100mb,很容易造成服务器iis假死,或者吃光你机子的内存~而且相对而言sql的数据备份比较方便,功能强大很多啊~,要看想用它来做什么了一个小型一个大型!
access相对来说容易一些,但是安全性上比较差一些,适合一些比较小型的而且没有什么机密的网站,sql比较复杂,但是在安全性上要比access好得多,适合比较大,访问频率比较高,数据量比较大的网站。还有什么问题,请留言或者发email:[email protected]

㈨ 我有两个表都是18W条记录,要比对,我在access中用sql查询只用1秒钟,在mysql中查询过了1个小时仍没查出来。

你好,由于记录比较多,在mysql中查询你可以将作为条件的字段做为索引,这样就会很快,添加索引的方式:
例如:alter table emp add index(empno);即对表emp中的字段empno设置索引。

㈩ Sql server 中数据与access中数据对比速度太慢

检查一下,检索的两张表上是否有索引,最好是where条件包含在索引中。