为什么加了一个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
...全文
1105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-05-05
  • 打赏
  • 举报
回复
distinct 相当于 group by + order by 怎么改也快不了,换方法吧.
liuvb 2004-05-05
  • 打赏
  • 举报
回复
如果不要disticnct,有很多重复数据,请各位帮忙。多谢了,很着急。
各位能帮我改一下上面那个存储过程吗?多谢
8992026 2004-05-05
  • 打赏
  • 举报
回复
distinct的速度是慢的,想办法避免
zjcxc 元老 2004-05-05
  • 打赏
  • 举报
回复
按种方法试试

/*--分页方法:

回复人: j9988(j9988)
--*/


declare @sqlstr nvarchar(4000), --查询字符串
@pagecount int, --第N页
@pagesize int --每页行数

select @pagecount=3,@pagesize=10
,@sqlstr='select * from sysobjects'

set nocount on
declare @P1 int, --P1是游标的id
@rowcount int

exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select @rowcount as 总行数,ceiling(1.0*@rowcount/@pagesize) as 页数,@pagecount as 当前页
set @pagecount=(@pagecount-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@pagecount,@pagesize
exec sp_cursorclose @P1
【四轴飞行器的位移控制】控制四轴飞行器的姿态和位置设计内环和外环PID控制回路(Simulink仿真实现)内容概要:本文围绕四轴飞行器的位移控制展开,重点介绍如何通过设计内环和外环PID控制回路来实现对其姿态和位置的精确控制。外环负责根据期望位移生成姿态指令,内环则依据这些指令调节飞行器的实际姿态,从而实现稳定的位置跟踪。整个控制系统在Simulink环境中进行建模与仿真,便于验证控制策略的有效性与鲁棒性。文中详细阐述了四轴飞行器的动力学模型、控制结构设计原理以及PID参数整定方法,帮助读者深入理解飞行器控制的核心机制。; 适合人群:具备自动控制理论基础和Simulink仿真经验的高校学生、科研人员及从事无人机控制开发的工程师。; 使用场景及目标:①用于教学实践中帮助学生掌握多变量控制系统的设计方法;②为无人机姿态与位置控制系统的开发提供可复现的仿真框架;③支持进一步研究高级控制算法(如串级控制、自适应控制)在飞行器中的应用。; 阅读建议:建议读者结合Simulink模型同步操作,动手调试PID参数以观察系统响应变化,深对内外环协同控制机制的理解,并可在此基础上拓展为非线性或智能控制策略的研究。

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧