数据库分页存储过程效率有关问题
数据库分页存储过程效率问题
在用数据库存储过程分页的时候,要多表查询,请问是将要连表查询和where条件都加之后得到结果存入临时表中,再从临时表中计算数据条数据和页数,以及用select top得到分页数据的效率高,还是在计算数据条数和页数的时候查询一次,select top的时候再查询一次的效率高呢?
后者就做了两次连表查询,前者只做了一次连表查询操作,但使用了临时表,不知道是否会因为占内存而影响效率。
我积分不多,还望大神不吝赐教,谢谢
------解决思路----------------------
这个要看你具体的数据量和你查询的条件设置,以及对应的索引之类的。
单纯从是否使用临时表来说,没有指导意义。
临时表是读入数据,写入tempdb,肯定更耗资源。如果你临时表数据量大,没有建立索引,那么还不如第二种扫描两次来得快。
要实际看执行计划,对比两者的差异,才能看出那个效率好点。
在用数据库存储过程分页的时候,要多表查询,请问是将要连表查询和where条件都加之后得到结果存入临时表中,再从临时表中计算数据条数据和页数,以及用select top得到分页数据的效率高,还是在计算数据条数和页数的时候查询一次,select top的时候再查询一次的效率高呢?
后者就做了两次连表查询,前者只做了一次连表查询操作,但使用了临时表,不知道是否会因为占内存而影响效率。
我积分不多,还望大神不吝赐教,谢谢
------解决思路----------------------
这个要看你具体的数据量和你查询的条件设置,以及对应的索引之类的。
单纯从是否使用临时表来说,没有指导意义。
临时表是读入数据,写入tempdb,肯定更耗资源。如果你临时表数据量大,没有建立索引,那么还不如第二种扫描两次来得快。
要实际看执行计划,对比两者的差异,才能看出那个效率好点。