为什么加了一个distinct,速度慢的无法忍受,请各位帮忙,谢谢!

liuvb 2004-05-05 07:44:12
下面是一个分页的存储过程,为什么加了一个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
...全文
67 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wangsaokui 2004-05-05
对,建立索引列
  • 打赏
  • 举报
回复
lxcc 2004-05-05
给你的数据库表建立索引
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-05 07:44
社区公告
暂无公告