Django合并查询以加速数据库访问

时间:2015-11-20 18:43:49

标签: python sql django oracle oracle11g

我使用循环创建查询列表:

chunks = 1000
chunkTimeInS = (endDate - startDate).total_seconds()/chunks

queryList=[]

for timeChunk in range(0,chunks):
    startTime=startDate+timedelta(seconds=chunkTimeInS*timeChunk)
    endTime=startDate+timedelta(seconds=chunkTimeInS*(timeChunk+1))

    queryList.append(myModel.objects.using('myDB')
        .exclude(myValue1=-99)
        .filter(timestamp__gte=startTime, timestamp__lt=endTime)
        .order_by("timestamp")
        .aggregate(
            Avg('myValue1'),
            Avg('myValue2'),
            myValue3 = Avg(F('myValue3')*F('myValue3')),
            )
        )

我想通过执行以下操作将所有数据保存到列表中:dataList=list(queryList)。这个电话花了太长时间。我猜是由于queryList中的大量查询。

有没有办法将此列表合并为一个查询?或者也许是其他加速数据库访问的解决方案。

使用的数据库是Oracle 11g。

0 个答案:

没有答案