易截截图软件、单文件、免安装、纯绿色、仅160KB

存储过程中Sql 语句查询速度优化 某例

之前的SQL语句如下,查询很慢,6分钟多都没有结果显示,一开始我以为是6张表联合查询带来的速度慢的问题。
后来发现因为PO_D.ORDNO与PO_H.ORDNO相同,把绿色部分替换为紫色的部分,
把PO_D替换为PO_H,10秒钟就能查询出来
PS:PO_D中101401笔数据,PO_H中51341笔数据。
虽没有想明白替换之后提速到如此之快仅10秒,与6分钟未出结果差异太大,但毋庸置疑的是应该以数据量少的表
作相关外键查询是可以提高速度的。所以在写SQL语句时注意此处。
 
SELECT (SELECT DEPT_CODE from AM_EMPLOYEE WHERE EMP_NO=PO_H.APPLICANT) AS DEPT_CODE,
       (SELECT LOGIN_NAME from AM_EMPLOYEE WHERE EMP_NO=PO_H.APPLICANT) AS LOGIN_NAME,
       PO_D.FPRNO,
       PO_D.ORDNO,
       PO_H.MDATE,
       PO_T.ITDSC,
       PO_T.ITEMSPEC,
       PO_D.UMORD,
       PO_D.ACTQY,
       PO_D.POISQ,
       PV.VENDOR,
       PV.VNDNAM,
       PO_H.CURCY,
       PO_D.UNITP,
       PO_T.ECDNO,
       PC_PACN_LIST.PRICE,
       (PC_PACN_LIST.PRICE-PO_D.UNITP) AS BALANCE
    from
       IPPOHM AS PO_H,
       IPPODM AS PO_D,
       IPAVM  AS PV,
       IPPOTM AS PO_T,
       PC_PACN_LIST
    WHERE
       PO_D.ORDNO = PV.VORDNO
       AND
       PO_H.ORDNO =PO_D.ORDNO
       AND
       PO_D.ORDNO


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

SQL Server 2008新特性-数据压缩

数据压缩(Data Compression)是SQL Server 2008引入的新特性之一,这项技术使数据更有效的保存并且极大减少了存储开销,同时也带来了性能上的显著提高,尤其是对需要大量磁盘I/O的数据仓库。
 
注:其实在SQL Server 2005 SP2版本中,已经引入了 vardecimal ,它使用变长的格式存储定长的decimal和numberic数据。
......

高效SQL分页存储过程

CREATE PROCEDURE fenye
@tblName varchar(255)='wdf1', -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='userid', -- 排序的字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@doCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设 ......

ORACLE中SQL取最后一条记录的几种方法

  在ETL过程中,经常会碰到取结果集的最后或最前一条记录。如取活期存款的当前利率,开户金额,协定利率等。如果不用LOOKUP的方式,如通过游标取或者ETL工具LOOKUP组件什么的,在一条SQL里实现,目前实现有几种方法。
1.以时间或其他字段分组后在自连自己,这样不仅可以带出需要LOOKUP的字段,还可以带出其他需要的字 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号