Couchbase上的并行查询的执行时间和经过时间不同

问题描述

我正在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 (将#修改为@)