问题描述
我正在11个线程中并行执行同一查询,而这些查询的执行时间却截然不同。而且,如果我仅执行一个查询,则执行速度非常快。
线程代码:我使用了11个线程
self.fields['logo'].widget = PictureWidget()
输出:
Thread t1 = new Thread(new Runnable() {
public void run() {
try {
QueryResult result= null;
double qstart = System.currentTimeMillis();
ClusterEnvironment env = ClusterEnvironment
.builder()
.timeoutConfig(TimeoutConfig.kvTimeout(Duration.ofMinutes(15)))
.build();
Cluster cluster = Cluster.connect("xx.xx.xx.xxx","**********","************");
Bucket bucket = cluster.bucket("case5");
Collection collection = bucket.defaultCollection();
double qend1 = System.currentTimeMillis();
result = cluster.query("select `user`.userID,`user`.userName,`user`.employeeCode,`user`.personalDetails.userEmail[0].emailAddress,`user`.userDateOfBirth,`user`.userAddress from case3 where `user`.userID=\"user1\" and document.documentType=\"01\" and document.featureID=\"101\" and document.tenantID=\"CUST1\"",QueryOptions.queryOptions().metrics(true));
double qend = System.currentTimeMillis();
System.out.println("1Reported execution time: "
+ result.MetaData().metrics());
System.out.println("1MetaData"+result.MetaData());
double qout = qend - qend1;
System.out.println("1"+cluster.diagnostics());
System.out.println("1Query time = " + qout);
for (JsonObject row : result.rowsAsObject()) {
System.out.println("1Found row: " + row);
}cluster.disconnect();
}
catch (Exception e) {
// Todo: handle exception
e.printstacktrace();
}
}});
单次执行仅需5毫秒。 在执行并行查询之前,是否需要做任何设置?为什么它们会有如此大的差异?请帮帮我!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)