很郁闷的问题,为什么设置的日期间隔越短,查询越慢?

hanbaojun 2007-12-23 05:08:51

为什么设置的日期间隔越短,查询越慢?


如果日期间隔为 5天以内数据就查不出来了。数据表 SendColl 的数据5万左右,BK_BusinessData表有20万存放的是明细,TreeInfo 有1000多条数据。存储过程如下:

ALTER PROCEDURE [dbo].[SendColl_SD_LIST_OUT]

@bmID varchar(50),
@startDate varchar(50),
@endDate varchar(50),
@humanID varchar(50),
@startID varchar(50),
@endID varchar(50),
@num1 int

AS

DECLARE @s varchar(8000)
DECLARE @sqlStr varchar(8000)

SET @s = ''

SELECT @s=@s+',['+RTRIM(bkName)+'] = SUM(CASE b.bkID when '''+RTRIM(bkID)+''' then b.doCount else 0 end)'
FROM UseCompany_BK
ORDER BY bkID ASC

SET @sqlStr = '
SELECT
选择=a.s,
序号=CAST(a.sendID as varchar(30)),
发票号码=a.PID,
单位名称=IsNull(a.companyName,''''),
地址=IsNull(a.sendAddress,''''),
段别=a.sendInArea,
电话=IsNull(a.receiveTel,''''),
发行员=a.markEr,
转到部门=c.treeName
'+ @s +',
备注=a.contentStr

FROM SendColl a,BK_BusinessData b,TreeInfo c

WHERE a.sendID = b.collID
AND a.sendInAreaID like c.areaID + ''%''
AND Len(c.areaID)>5
AND c.treeTypeName=''FUNCTION''
AND a.addEr = '''+ @bmID +'''
AND (isOut =1 OR isOut = 2) AND b.collTypeName=''SEND''
'

IF @num1 = 0
SET @sqlStr = @sqlStr + ' AND num1 = 0 '
ELSE
IF @num1 = 1
SET @sqlStr = @sqlStr + ' AND num1 = 1'
ELSE
SET @sqlStr = @sqlStr + ' AND (num1 = 0 OR num1 = 1) '

IF @startDate <> '' AND @endDate <> ''
SET @sqlStr = @sqlStr+ ' and a.addDate >= '''+ @startDate +' 0:00:00'' and a.addDate < '''+ @endDate +' 23:59:59'''

if @humanID <> ''
SET @sqlStr = @sqlStr + ' and c.treeID like '''+ @humanID +'%'' '

if @startID <> '' and @endID <> ''
SET @sqlStr = @sqlStr + ' and sendID >='+ @startID +' and sendID <='+@endID

SET @sqlStr = @sqlStr + '
GROUP BY a.PID,a.sendID,a.companyName,a.sendAddress,a.receiveTel,a.sendinarea,a.marker,a.contentStr,a.addEr,c.treeName,a.s
ORDER BY a.sendID desc
'

EXEC(@sqlStr)
...全文
249 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2007-12-23
  • 打赏
  • 举报
回复
wzy_love_sly

csdn这几天完蛋了

--------------------

哈哈,这下,你完蛋了,这里有几个鸟人专门关注你这样的骚动分子.
dmarkplus 2007-12-23
  • 打赏
  • 举报
回复
要不在winform 里设置timeout?

fcuandy 2007-12-23
  • 打赏
  • 举报
回复
ALTER   PROCEDURE   [dbo].[SendColl_SD_LIST_OUT] 

@bmID varchar(50),
@startDate varchar(50),
@endDate varchar(50),
@humanID varchar(50),
@startID varchar(50),
@endID varchar(50),
@num1 int
@mysql VARCHAR(2000)
AS
...
...

SET @mySQL = @sqlSTR


在你的winform里,把sql语句取出来看一下. 就知道你传的参数是否会有异常了.

或者直接在sql事件探查器里看.
wzy_love_sly 2007-12-23
  • 打赏
  • 举报
回复
csdn这几天完蛋了
dawugui 2007-12-23
  • 打赏
  • 举报
回复
自己单步跟踪一下,看是不是时间的问题.
jinjazz 2007-12-23
  • 打赏
  • 举报
回复
在查询计划里面看一下就明了了
dawugui 2007-12-23
  • 打赏
  • 举报
回复
这个问题值得关注.
dawugui 2007-12-23
  • 打赏
  • 举报
回复
还有这种怪现象?

数据少了反而查不出来?
hanbaojun 2007-12-23
  • 打赏
  • 举报
回复
比如设置 从 2007-11-12 到 2007-12-23 出现的比较快的

但如果是设置 从 2007-12-20 到 2007-12-23 却提示查询超时。

即使在本机查询也是一样,不过我直接在Sql 2005的客户端里执行这个存储过程可以慢慢的出来结果,我自己写的winform程序里却提示超时!
wzy_love_sly 2007-12-23
  • 打赏
  • 举报
回复
为什么设置的日期间隔越短,查询越慢?
-------------------------------------
长了会快吗
内容概要:本文围绕基于萤火虫算法(FA)的太阳能、风能与水力混合抽水蓄能系统的优化建模与仿真展开研究,提出了一种融合多源可再生能源与抽水蓄能技术的综合能源系统协调运行策略。通过Matlab平台实现了系统建模、智能优化算法设计与仿真验证全过程,重点解决了风光水多能源出力波动性强、系统供电可靠性低等问题。采用萤火虫算法对储能调度、能量管理与运行经济性进行优化,有效提升了系统对可再生能源的消纳能力和平滑输出性能,同时兼顾运行成本与稳定性。研究涵盖了从数学建模、目标函数构建、约束条件处理到多能互补协调机制的设计,提供了完整的代码实现方案,具有较强的科研复现价值与工程应用前景。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源系统优化设计的工程技术人员。; 使用场景及目标:①用于高校或科研机构开展可再生能源集成与储能优化调度相关课题研究;②支撑高水平论文撰写与智能优化算法(如萤火虫算法)在综合能源系统中的应用复现;③为实际电力系统中多能互补项目、微电网能量管理系统的设计与仿真提供方法论与工具支持。; 阅读建议:建议读者结合文中提供的Matlab代码与可能的Simulink模型,逐步调试运行,深入理解算法实现细节与系统建模逻辑;同时关注优化目标函数的设定、约束条件处理及多能源协调机制,以提升自身在能源系统优化领域的建模与创新能力。
源码下载地址: https://pan.quark.cn/s/7f242081e14c 标题 "普中51-A2开发板资料.7z" 提供的信息表明,这是一个与普中51-A2开发板相关的资源包。 51单片机是微控制器领域中的一个经典系列,STC-89C52是51系列中的一个型号,常用于教学和入门级项目。 这个压缩包可能包含了一系列帮助用户理解和使用该开发板的材料。 描述中的"SHA256: B889D6FE71BF1CB25C67D57BE0854787F4D6902B20E2A1AF8FC9DEB66F4C7827"是文件的哈希值,用于验证文件的完整性和未被篡改,但具体知识点不在此范围内。 从标签来看,我们可以期待以下内容:1. **普中51-A2开发板**:这是一款基于51单片机的开发工具,可能包括硬件电路图、原理图、PCB设计文件等。 2. **STC-89C52**:这是51单片机的一个变种,具有增强的特性,如更多的I/O口、更大的内存等。 资料可能包含其数据手册、引脚定义、编程指南等。 3. **开发板**:可能包含开发板的使用手册、接线教程、初始化设置步骤等。 4. **51单片机**:基础理论、指令集、编程语言(如汇编或C语言)、中断系统、定时器/计数器的使用等。 5. **开发工具**:可能有Keil、Proteus、ISP编程软件等,这些工具用于编写、调试和烧录代码到单片机中。 从压缩包子文件的文件名称列表来看,我们可以深入学习以下内容:1. **普中51单片机开发攻略--A2.pdf**:这可能是开发板的用户指南或教程,涵盖基本操作、示例项目和常见问题解答。 2. **5--开发工具.rar**:可能包含开发环境的安装教程、配置指南和使用技巧。 3. **5--实验程序....
内容概要:本文详细介绍了一种基于Simulink的光伏储能单相逆变器并网仿真模型,系统涵盖了光伏阵列、储能单元、DC-AC单相逆变器及并网接口的完整结构,重点实现了储能环节的能量管理与逆变器并网控制策略的建模仿真。通过Simulink平台构建系统模型,验证了逆变器输出电能质量、并网稳定性以及控制系统的动态响应性能,采用SPWM调制、PI闭环控制等关键技术,确保并网电流与电网电压同频同相,满足并网电能质量要求。该模型不仅可用于分布式能源系统的仿真研究,还可作为新能源并网技术的教学与工程实践工具。; 适合人群:电气工程、自动化、新能源科学与工程等相关专业的高校本科生、研究生、科研人员,以及从事光伏发电系统设计、储能控制与并网技术研发的工程技术人员。; 使用场景及目标:①深入理解光伏储能系统中能量转换、存储与并网控制的整体工作原理;②支持课程设计、毕业设计或科研项目中对单相逆变器控制策略(如SPWM、PI调节、锁相技术等)的仿真验证与参数优化;③为后续研究更复杂的控制算法(如MPPT、低电压穿越、谐波抑制等)提供可扩展的仿真基础平台。; 阅读建议:建议结合MATLAB/Simulink环境动手搭建与调试模型,逐步理解各模块(如光伏建模、储能充放电控制、逆变器驱动、锁相环、PI调节器等)的功能与交互关系,重点关注控制系统的设计逻辑与参数整定过程,并可通过修改负载条件或电网参数测试系统鲁棒性,为进一步拓展至三相系统或多机并网场景奠定基础。

34,876

社区成员

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

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