Ucanaccess 太慢了

     2023-04-19     75

关键词:

【中文标题】Ucanaccess 太慢了【英文标题】:Ucanaccess is too slow 【发布时间】:2016-04-27 08:03:07 【问题描述】:

我已正确添加了所有必要的 JARS:

Ucanaccess 3.0.4 commons-lang-2.6 commons-logging-1.1.1 hsqldbd jackcess-2.1.3

我的数据库是 100MB。仅使用 Jacksess 时,相同的查询需要 4-5 秒,而这一查询大约需要 1-2 分钟。我做了一些研究,发现 Ucanaccess 镜像了整个数据库。我怎样才能禁用它?还是有必要?

我也尝试了参数(内存、singleConnection、skipIndexes),但它没有改变任何东西。

我必须使用 UcanAccess,因为我想使用 JasperReports。为此,我需要一个有效的连接。

我的代码:

        try 
        Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        String connectionURL = "jdbc:ucanaccess://P:/myDatabase.accdb";
        Connection conn = DriverManager.getConnection(connectionURL, "", "");
        Statement stmt = conn.createStatement();

        String query =
                "Select * from REQ_ACQ_ACQUISITIONS";


        ResultSet rs = stmt.executeQuery(query);
        while ( rs.next() ) 
            int numColumns = rs.getMetaData().getColumnCount();
            for ( int i = 1 ; i <= numColumns ; i++ ) 
                if (i > 1) System.out.print(",  ");
                String columnValue = rs.getString(i);
                System.out.print(columnValue + " " + rs.getMetaData().getColumnName(i));
            
            System.out.println("");
        
     catch (ClassNotFoundException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
     catch (SQLException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    

【问题讨论】:

执行时很慢:Connection conn = DriverManager.getConnection(connectionURL, "", ""); P: 是网络共享的映射驱动器号吗?如果是这样,您可以尝试将数据库文件复制到本地硬盘并在此处打开以比较执行时间吗? 亲爱的 Gord,它确实是一个映射驱动器。但是我在本地尝试过,响应完全一样(如果可能的话甚至更慢?) 【参考方案1】:

请注意,这并不是真正的“连接时间”,而是整个 JVM 生命周期中第一次连接的时间。所以这是一个启动时间,类似于数据库启动时间。以下所有连接都是瞬时的。有几种方法可以显着减少第一次连接的时间。最简单的方法是构建一个过滤器数据库,将报表所需的唯一表链接为外部表。

【讨论】:

您好 Jamadei,您将如何继续这样做?你认为它必须在 Ucanaccess 中完成吗? 不,绝对,它已经工作了。您只需要创建(使用 ms 访问)一个新的访问数据库和必须指向原始数据库中原始数据库的链接表(请参阅外部数据)。然后你必须通过 ucanaccess 连接新创建的数据库。 问题是我不想增加数据库——尤其是因为我不知道要使用多少表(可能全部)。另外,我无法在这台(商业)计算机上安装 Access。假设我只想通过 java 解决问题。 @pathat0r - 对您的一些 cmets 的回复:“我不知道我将使用多少张表(可能全部)。” 然后你'将需要镜像所有这些。 “另外,我无法在这台(企业)计算机上安装 Access。” 所以您有使用 Access 数据库的实际业务需求,但您不能使用 Access 软件?那真不幸。 “我必须使用 UcanAccess,因为我想使用 JasperReports。” 不一定。您还可以使用 Java 7 和 Java 自己的 JDBC-ODBC 桥,或者您可以使用其他一些(商业?)JDBC 驱动程序或 JDBC-ODBC 桥解决方案。 So it's a startup time, something like a database startup time. 是的...正如您所说...第一个连接很慢,但其余时间(只要我们保留打开的连接的引用)数据库连接/事务非常快【参考方案2】:

对我来说,我遇到了类似的问题,但主要是因为在我的整个代码中,我从未在运行查询后关闭我的连接。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

for循环太慢了

】for循环太慢了【英文标题】:Forloopistooslow【发布时间】:2016-01-0113:01:38【问题描述】:我有以下代码:varCombinatorics=require(\'js-combinatorics\');varfs=require(\'fs\');cp=Combinatorics.cartesianProduct(["4","@","/\\\\","/-\\\\","^","∂","λ","α","(!" 查看详情

iPad 中的洪水填充太慢了

】iPad中的洪水填充太慢了【英文标题】:FloodfillinginiPadtooslow【发布时间】:2011-05-0901:19:28【问题描述】:我在iPad上为我的一个着色应用程序使用洪水填充。该应用程序基本上在图像的黑线内填充颜色,我可以毫无问题地做到这... 查看详情

InAppReview : SKStoreReviewController 太慢了

】InAppReview:SKStoreReviewController太慢了【英文标题】:InAppReview:SKStoreReviewControllerSoSlow【发布时间】:2017-09-2213:03:59【问题描述】:使用SKStoreReviewController进行inAppReview需要时间,直到出现提示,有什么方法可以让它显示得更快?另... 查看详情

插入 WStandardItemModel 太慢了

】插入WStandardItemModel太慢了【英文标题】:InsertinginaWStandardItemModelistooslow【发布时间】:2011-07-0417:59:53【问题描述】:我正在开发一个基于WT构建的应用程序。我们遇到了性能问题,因为它必须在与WStandardItemModel关联的WTableView中... 查看详情

为啥使用 information_schema 太慢了?

】为啥使用information_schema太慢了?【英文标题】:Whyisusinginformation_schematoomuchslow?为什么使用information_schema太慢了?【发布时间】:2017-02-2607:34:33【问题描述】:这是我的代码://dbssize$sql=\'SELECTtable_schemaDB_Name,Round(Sum(data_length+inde... 查看详情

获取数百万条记录太慢了

】获取数百万条记录太慢了【英文标题】:FetchingMillionsRecordsgoingtooslow【发布时间】:2018-07-3010:47:29【问题描述】:我正在尝试使用带有Fetching的聚集索引复制其他表中的6000万条记录。但是在2000万张唱片之后,它变得太慢了。我... 查看详情

导航到包含 ScrollView 的 ViewController 太慢了

】导航到包含ScrollView的ViewController太慢了【英文标题】:NavigatingtoViewControllercontainingScrollViewGoingtooSlow【发布时间】:2016-01-1807:55:50【问题描述】:这就是从ViewControllerA推送到ViewControllerB的方式UIStoryboard*mainStory=[UIStoryboardstoryboardW... 查看详情

呈现视图控制器太慢了

】呈现视图控制器太慢了【英文标题】:PresentingViewControlleristooslow【发布时间】:2020-05-2000:08:29【问题描述】:我已经在我的Swift应用中实现了FirebaseGoogle登录。我想在开始时检查它是否已经是登录用户。我是这样做的:overridefun... 查看详情

MySQL查询太慢了

】MySQL查询太慢了【英文标题】:MySQLquerytoomuchslow【发布时间】:2019-05-1423:21:59【问题描述】:我正在尝试查询以获取一些趋势统计数据,但基准测试真的很慢。查询执行时间约为134秒。我有一个名为table_1的MySQL表。在create语句... 查看详情

UIAlertController 在 iOS 9.3 中太慢了

】UIAlertController在iOS9.3中太慢了【英文标题】:UIAlertControlleristooslowiniOS9.3【发布时间】:2016-10-3123:35:19【问题描述】:在iOS9.3中执行任何按钮操作时,UIAlertController太慢。不确定是iOS9.3的问题还是缺少正确配置的内容。UIAlertContro... 查看详情

setFormulaArray 太慢了

】setFormulaArray太慢了【英文标题】:setFormulaArraytooslow【发布时间】:2021-06-0807:02:33【问题描述】:我正在尝试编写一个python包装器,该包装器旨在从csv(或mysql)读取多个记录并更新工作表预定义范围的值,该范围由值单元格和... 查看详情

Vscode typescript 样式的组件太慢了

】Vscodetypescript样式的组件太慢了【英文标题】:Vscodetypescriptstyledcomponenttooslow【发布时间】:2020-10-1008:32:58【问题描述】:当我使用styledcomponent时,我的vscode类型检查太慢了我已经多次搜索过这个问题,但我在hit-hub上发现了一... 查看详情

Alamofire 序列化太慢了

】Alamofire序列化太慢了【英文标题】:AlamofireSerializationisTooSlow【发布时间】:2018-02-1321:27:43【问题描述】:由于某种原因,我需要很长时间进行序列化。我正在使用Alamofire和ObjectMapper来处理请求响应并将数据反序列化为对象。... 查看详情

谷歌云部署太慢了

】谷歌云部署太慢了【英文标题】:GoogleClouddeploysoslow【发布时间】:2017-03-0504:06:30【问题描述】:我正在使用GoogleCloudNodeJS托管。当我将应用程序部署到GoogleCloud时,我感到非常惊讶。每次部署都非常慢。第一次可能会很慢,但... 查看详情

Rails Assets 预编译太慢了~12hrs

】RailsAssets预编译太慢了~12hrs【英文标题】:RailsAssetsprecompileistooslow~12hrs【发布时间】:2014-02-2406:28:11【问题描述】:我是本地预编译资产likethisRAILS_ENV=productionbundleexecrakeassets:precompile,但是12小时太慢了。我不知道会发生什么!... 查看详情

函数 scipy.interpolate.interpn() 太慢了

】函数scipy.interpolate.interpn()太慢了【英文标题】:Functionscipy.interpolate.interpn()muchtooslow【发布时间】:2022-01-1117:37:45【问题描述】:我正在使用scipy.interpolate.interpn()在二维网格上的单个点插入一个值。问题在于,对于这个单点和2D... 查看详情

Swift:tableView.reloadData() 太慢了

】Swift:tableView.reloadData()太慢了【英文标题】:Swift:tableView.reloadData()waytooslow【发布时间】:2015-08-2317:06:01【问题描述】:我正在尝试在我调用以填充我的UITableView的异步请求之后执行tableView.reloadData()调用。该表会在15-20秒后显... 查看详情

javacv视频压缩太慢了

参考技术A可直接按默认设置即可。所有参数都调整好之后,点击开始压缩视频就可以了。视频压缩通常指的是通过特定的压缩技术,比如调节视频的参数等,从而达到缩减视频大小节省空间的目的。 查看详情