Tôi đang hỗ trợ ứng dụng web Grails hiển thị các hình ảnh khác nhau cho ứng dụng khách bằng AmCharts. Trên một trong các tab có ba biểu đồ mà mỗi biểu đồ trả về mười hàng đầu, do đó, chỉ có mười hàng, từ cơ sở dữ liệu dựa trên các số đo khác nhau. Phải mất 4-5 hoặc đôi khi còn nhiều thời gian hơn để hoàn thành. Truy vấn chạy trên DB trong dưới 10 giây.sql.rows() trong Groovy đang chạy chậm
Phương pháp dịch vụ sau đây được gọi là để trả về kết quả:
List fetchTopPages(params, Map querySettings, String orderClause) {
if(!((params['country'] && params['country'].size() > 0) || (params['brand'] && params['brand'].size() > 0) || (params['url'] && params['url'].size() > 0))) {
throw new RuntimeException('Filters country or brand or url not selected.')
}
Sql sql = new Sql(dataSource)
sql.withStatement { stmt -> stmt.fetchSize = 100 }
Map filterParams = acquisitionService.getDateFilters(params, querySettings)
ParamUtils.addWhereArgs(params, filterParams)
String query = "This is where the query is"
ParamUtils.saveQueryInRequest(ParamUtils.prettyPrintQuery(query, filterParams))
log.debug("engagement pageviews-by-source query: " + ParamUtils.prettyPrintQuery(query, filterParams))
List rows = sql.rows(query, filterParams)
rows
}
Sau một số cuộc điều tra rõ ràng rằng dòng List rows = sql.rows(query, filterParams)
là một trong đó chiếm thời gian tải này.
Có ai đã trải qua sự cố này trước đây không? Tại sao sql.rows() mất nhiều thời gian khi nó chỉ trả về 10 hàng trị giá trị của kết quả, và truy vấn chạy nhanh ở phía DB?
Thông tin thêm:
DB: FSL1D
Chạy lệnh sau đây trên DB bên: java -jar ojdbc5.jar - getversion
lợi nhuận: "Oracle 11.2.0.3.0 JDBC 3.0 biên soạn với JDK5 trên Thu_Jul_11_15: 41: 55_PDT_2013 Mặc định kết nối Thuộc tính Resource Wed 16 Tháng 12 08:18:32 EST 2015"
Version Groovy: 2.3.7 Grails Version: 2.4.41 JDK: 1.7.0
Để cho phép trả lời cụ thể hơn xin gửi DB của bạn, trình điều khiển JDBC và phiên bản Groovy + JDK –
DB: FSL1D Chạy lệnh sau trên DB bên: 'java -jar ojdbc5.jar - lợi nhuận getversion': Oracle 11.2.0.3 .0 JDBC 3.0 biên soạn với JDK5 trên Thu_Jul_11_15: 41: 55_PDT_2013 #default Connection Properties Resource #Wed 16 Tháng 12 08:18:32 EST 2015 Groovy Version: 2.3.7 Grails Version: 2.4.41 JDK: 1.7.0 – krizsa
cảm ơn, tôi sẽ cố gắng thiết lập kịch bản của bạn. Có một câu hỏi tương tự [ở đây] (http://stackoverflow.com/questions/9923981/why-sql-rows-groovy-method-is-so-slow) nhưng không có câu trả lời dứt khoát. –