Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 合并:SQL 2005+使用SET ROWCOUNT或RowNumber()进行动态分页?_Sql Server 2005_Pagination_Row Number_Rowcount - Fatal编程技术网

Sql server 2005 合并:SQL 2005+使用SET ROWCOUNT或RowNumber()进行动态分页?

Sql server 2005 合并:SQL 2005+使用SET ROWCOUNT或RowNumber()进行动态分页?,sql-server-2005,pagination,row-number,rowcount,Sql Server 2005,Pagination,Row Number,Rowcount,我有一个复杂的SP,它应用了多个连接和查找,并有复杂的过滤器,如逗号分隔的值等。。。除此之外,我还部署了两个复杂但性能有效的功能: 一,。动态排序,但我看到它的局限性-你知道冗长/笨拙的案例层次结构,奇怪的是专家们也同意这是我们唯一的“最佳”解决方案: 不管怎样,我现在对这件事没什么期望 二,。动态分页—也就是说,我希望SP能够只返回X个记录数X=从Y开始的页面大小Y=页码。我希望你已经大致了解了 为了更清楚,我想使用MySQL和PostgreSQL中提供的一些东西: [LIMIT { nu

我有一个复杂的SP,它应用了多个连接和查找,并有复杂的过滤器,如逗号分隔的值等。。。除此之外,我还部署了两个复杂但性能有效的功能:

一,。动态排序,但我看到它的局限性-你知道冗长/笨拙的案例层次结构,奇怪的是专家们也同意这是我们唯一的“最佳”解决方案:

不管怎样,我现在对这件事没什么期望

二,。动态分页—也就是说,我希望SP能够只返回X个记录数X=从Y开始的页面大小Y=页码。我希望你已经大致了解了

为了更清楚,我想使用MySQL和PostgreSQL中提供的一些东西:

[LIMIT { number | ALL }] [OFFSET number]

奇怪的是,SQL 2005+中没有这么简单和基本的功能。。还是我错了我很高兴听到:-

我知道两种适合我的性能/复杂性权衡的方法-

[2.1]使用SQL 2005的“行数”功能,然后应用过滤器:我过去曾使用过它

WHERE (Row BETWEEN (@PageIndex-1) * @PageSize +1 AND @PageIndex* @PageSize)
WHERE (Row BETWEEN (@PageIndex-1) * @PageSize +1 AND @PageIndex* @PageSize)
但同样,这需要创建一个临时表或使用WITH子句。这也在以下章节中进行了解释:

[2.2]我找到了一些新方法。其中一个是使用

SET ROWCOUNT
SET ROWCOUNT
他们说总体2.2比2.1有效。它是?另外,我想知道如果两个用户请求同时触发同一个SP两次会发生什么情况。。我希望“设置行数”不会在同时进行的SP调用中被“共享”或“过度写入”。请确认。
比较2.1和2.2的其他要点吗?

我认为这两种方法都很好,我们可以选择最适合我们需求的方法

我知道两种适合我的性能/复杂性权衡的方法-

[2.1]使用SQL 2005的“行数”功能,然后应用过滤器:我过去曾使用过它

WHERE (Row BETWEEN (@PageIndex-1) * @PageSize +1 AND @PageIndex* @PageSize)
WHERE (Row BETWEEN (@PageIndex-1) * @PageSize +1 AND @PageIndex* @PageSize)
但同样,这需要创建一个临时表或使用WITH子句。这也在以下章节中进行了解释:

[2.2]我找到了一些新方法。其中一个是使用

SET ROWCOUNT
SET ROWCOUNT
他们说总体2.2比2.1有效。它是?另外,我想知道如果两个用户请求同时触发同一个SP两次会发生什么情况。。我希望“设置行数”不会在同时进行的SP调用中被“共享”或“过度写入”。请确认。
比较2.1和2.2的其他要点吗?

我认为这两种方法都很好,我们可以选择最适合我们需求的方法

我知道两种适合我的性能/复杂性权衡的方法-

[2.1]使用SQL 2005的“行数”功能,然后应用过滤器:我过去曾使用过它

WHERE (Row BETWEEN (@PageIndex-1) * @PageSize +1 AND @PageIndex* @PageSize)
WHERE (Row BETWEEN (@PageIndex-1) * @PageSize +1 AND @PageIndex* @PageSize)
但同样,这需要创建一个临时表或使用WITH子句。这也在以下章节中进行了解释:

[2.2]我找到了一些新方法。其中一个是使用

SET ROWCOUNT
SET ROWCOUNT
他们说总体2.2比2.1有效。它是?另外,我想知道如果两个用户请求同时触发同一个SP两次会发生什么情况。。我希望“设置行数”不会在同时进行的SP调用中被“共享”或“过度写入”。请确认。
比较2.1和2.2的其他观点吗?

如果你还在,你的文章的后半部分应该作为答案发布,而不是问题的主体。谢谢,但我真的在寻找一些专家对这一点的评论。这就是我发布我的综合研发的原因。如果你还在的话,你的文章的后半部分应该作为答案发布,而不是问题的主体。谢谢,但我真的在寻找一些专家对这方面的评论。这就是我发布我的综合研发报告的原因。