页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 3 下一个 »

问题说明

       smartbi中Sql分页和结果集分页的区别在哪?

思路

        分页策略:系统设置:表示读取 系统选项 > 查询设置> 分页策略 中的设置。初始值为SQL分页。

        此分页策略用于比较特殊(某些数据库在创建SQL查询嵌套Order时执行不通过)的情况,建议在遇到此情况直接使用原生SQL查询。

  • SQL分页:表示查询外套一层后根据返回结果分段分页。
  • 结果集分页:表示不封装一层的SQL,直接把SQL预览中的语句放到数据库中执行然后取行分页。

        1) 首先需要明白:可视化查询和sql查询均会在预览的sql外面封装一层。原生sql查询则是手工输入什么sql,后台执行什么sql。

        2) 基于可视化查询和sql查询封装的这一层,可设置sql分页。所以可视化查询和sql查询可以设置sql分页以及结果集分页,但是原生sql查询只能进行结果集分页。

              比如,有100条数据,每页显示10条:

              A、设置sql分页

                    输入的sql语句为下图:

                    后台的分页取数机制是,在封装的外层sql中用limit语句来限制取数的范围,如下图:

        

               B、结果集分页

                    展示第一页数据:在数据库中,先将select * from table这个语句执行出来,要取1000条数据,先从第1行数据开始数,获取后面1000条数据在是smartbi中展示;

                    展示第二页数据:在数据库中,再次执行select * from table语句,还是从第1行数据开始数,数到1000行,获取1000后面1000条的数据在smartbi中展示;

                    ......

                   以此类推;

                   所以,若是通过数据集分页,越是展现后面页的数据,速度会越慢。


  • 无标签