提取行比运行查询需要更长的时间

时间:2017-04-18 04:14:13

标签: java oracle fetch

我的SQL查询只需要1分钟即可执行,但获取最多可达100万的总行需要大约11分钟。

以下是伪代码:

int waterCount;

private void updateWaterCount()
{
    waterCount = PreferenceUtilities.getWaterCount(this);

    resetButton = (Button) findViewById(R.id.reset_button);
    resetButton.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            waterCount = 0;
        }
    });
    mWaterCountDisplay.setText(waterCount+"");
}

我尝试将抓取大小从100更改为80000,但没有任何帮助,它仍然需要超过10分钟。 如果我删除while循环并简单地执行查询,那么整个过程只需几分钟就意味着查询正在快速执行。

有关如何缩短获取行的时间的任何建议吗?

1 个答案:

答案 0 :(得分:0)

您在应用级别唯一能做的就是:  1.返回较少的数据(通过较少的行或较少的列)  2.增加数组获取大小(从而通过SQL * Net减少网络往返,这是一个“聊天协议”)  3.拥有更快的网络(从而减少在网络往返中花费的时间)  4.在与DB相同的局域网上共同定位应用服务器(本质上是一个更快的网络)。