여러 개의 JOIN 및 룩업을 적용하고 쉼표로 구분 된 값 등의 복잡한 필터를 제공하는 복잡한 SP가 있습니다. 그 위에 복잡한 아직 성능이 뛰어난 두 가지 기능을 배포했습니다.통합 : SQL 2005 + 동적 페이지 매김 SET의 ROWCOUNT 또는 ROWNUMBER를 사용하여()?
1. 동적 정렬 그러나 나는 그것의 제한을 참조하십시오 - 당신이 전문가는이 우리가 가지고있는 유일한 '가장 좋은'해결책이 동의의 이상한 긴/서투른 CASE 계층 구조를 알것 :
Dynamic Sorting within SQL Stored Procedures http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=5942
어쨌든, 나는 지금이 일에 많은 것을 기대하지 않습니다.
동적 페이지 번호 - SP가 Y (Y = 페이지 번호)부터 X 레코드 (X = 페이지 크기) 만 반환 할 수있게하려는 것입니다. 난 당신이 일반적인 생각이있어 바랍니다.
는 더 명확 내가 MySQL을 &에서 사용할 수 뭔가를 사용할 수 있도록하려면 PostgreSQL의 :
[LIMIT { number | ALL }] [OFFSET number]
Database: SQL Pagination? http://www.sql.org/sql-database/postgresql/manual/queries-limit.html이
그 이상 같은 간단한 & 기본 기능은 SQL에서 사용할 수 없습니다 2005 + ... 또는 내가 잘못
(내가 :-) 그것을 듣고 기뻐 것)입니다 (내가 과거에 사용했습니다 :
[2.1]를 'ROWNUMBER()'SQL 2005의 기능은 다음 적용 필터를 사용하여 - 6,
는 나는 내 성능 \ 복잡성 트레이드 오프가 스위트 두 가지 방법을 알고 있었다)
WHERE (Row BETWEEN (@PageIndex-1) * @PageSize +1 AND @PageIndex* @PageSize)
다시 말해서 임시 테이블을 만들거나 WITH 절을 사용해야합니다. 또한 설명되어 있습니다 : Row Offset in SQL Server
[2.2] 몇 가지 새로운 방법을 발견했습니다. 그 중 하나는
SET ROWCOUNT
http://www.4guysfromrolla.com/webtech/042606-1.shtml
을 사용하고 있습니다 그리고 그들은 전체 2.2 다음 2.1 효과적이라고 말한다. 그렇지? 또한 두 사용자 요청이 동일한 SP를 동시에 두 번 트리거하면 어떻게되는지 알고 싶습니다. 'SET ROWCOUNT'가 동시 SP 호출 중 '공유'또는 '덮어 쓰기'되지 않기를 바랍니다. Pls가 확인합니다. 다른 점은 2.1 & 2.2입니까?
아직 주위에 있다면, 게시물의 후반부는 실제로 답변으로 게시해야합니다. 질문의 본문이 아닙니다. –
고마워요.하지만 정말 같은 전문가의 의견을 찾고 있습니다. 그게 내 통합 R & D를 게시 한 이유입니다. –