为什么加了一个distinct,速度慢的无法忍受,请各位帮忙,谢谢!
liuvb 2004-05-05 07:44:57 下面是一个分页的存储过程,为什么加了一个distinct,速度慢的无法忍受,如果不加distinct速度挺快,就是有很多得复数据,所以必须加。请各位帮忙。谢谢了。
CREATE PROC myx_prPageRecordset1
@queryStr nvarchar(1000),
@keyField nvarchar (200),
@pageSize int,
@pageNumber int
AS
BEGIN
DECLARE @sqlText AS nvarchar(4000)
DECLARE @sqlTable AS nvarchar(4000)
SET @sqlTable = 'SELECT DISTINCT TOP ' + CAST((@pageNumber + 1) * @pageSize AS varchar(30)) + ' ' + @queryStr
SET @sqlText =
'SELECT TOP ' + CAST(@pageSize AS varchar(30)) + ' * ' +
'FROM (' + @sqlTable + ') AS tableA ' +
'WHERE ' + @keyField + ' NOT IN(SELECT TOP ' +
CAST(@pageNumber * @pageSize AS varchar(30)) + ' ' + @keyField +
' FROM (' + @sqlTable + ') AS tableB)'
EXEC (@sqlText)
END
GO