无论查询是什么,Statement.excecuteQuery()都会占用太多时间。
athenaQuery = "SELECT DISTINCT date " +
"FROM sid.lvmh_shareofshelf_new_cat_all_dod where scope='PCD' and date!='' and country='" + countryName+ "' " + "and rname='" + rname
+ "' and top_category_lvmh='" + top_category_lvmh + "' ORDER BY date DESC";
stmt = conn.createStatement();
long startTime = System.nanoTime();
rs = stmt.executeQuery(athenaQuery);
long endTime = System.nanoTime();
System.out.println("Total time taken : "+ (endTime - startTime));
所需时间为2776930359纳秒(2.776930359秒)
答案 0 :(得分:1)
我不知道你项目的内部结构。我建议一些对你有帮助的事情。
比尝试看看性能提升!!
答案 1 :(得分:0)
我检查了Athena DB驱动程序,
https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.1.0.jar
它有com.amazonaws.athena.jdbc.AthenaConnection类,它从JDBC API实现java.sql.Connection接口。它拥有JDBC承诺的所有重载的prepareStatement方法。
我假设您已经知道使用Prepared语句的好处。
在您查询Where子句中的日期!='' 是字符数据类型吗?
你可以尝试
日期不为空