Published on InterSystems Developer Community (https://community.intersystems.com)

主页 > Cache 动态 SQL 分页

问题
Michael Lei · 四月 29, 2022

Cache 动态 SQL 分页

我想知道是否有更好的方法来使用动态SQL对数据集进行分页,而不是我下面使用的方法。问题是,当潜在的数据池变大时,这段代码就会变慢,以至于无法使用。在分析下面的每一行代码时,似乎速度变慢与最初的rset.%Next()迭代有关。 有没有什么不需要子查询/%VID的可用方法,比如简单的LIMIT/OFFSET?

我的代码类似于:

s sql=##class(%SQL.Statement).%New()

s query="SELECT *,%VID FROM (SELECT prop FROM table WHERE prop=x) WHERE %VID BETWEEN 1 AND 100"             

s sc=sql.%Prepare(query)

s rset=sql.%Execute()

while rset.%Next() {.....

#对象数据模型 #SQL #Caché
产品版本: Caché 2016.1

源 URL:https://cn.community.intersystems.com/post/cache-%E5%8A%A8%E6%80%81-sql-%E5%88%86%E9%A1%B5