首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

语句的优化。

2012-03-23 
求一个语句的优化。。SQL code--版本是SQL2000--数据量都不大,几万条,但是执行非常慢,要几分钟。。--怎么优化

求一个语句的优化。。

SQL code
--版本是SQL2000--数据量都不大,几万条,但是执行非常慢,要几分钟。。--怎么优化呢UPDATE T_BASE_PARTSALF SET CURRSALF = T1.SAFENUM,                        UPDATETIME=ISNULL(CONVERT(DATETIME,T1.UPDATETIME),GETDATE()),                        UPDATEMAN='SYSMAN'              FROM (SELECT IOSF.SAFENUM,IOSF.UPDATETIME,PART.PARTID,FACT.FACTID FROM T_IO_SAFESTORAGE IOSFLEFT JOIN T_BASE_PART PART ON IOSF.PARTCODEU8=PART.PARTCODELEFT JOIN T_BASE_FACT FACT ON IOSF.FACTCODE=FACT.FACTCODEWHERE ISACTIVE=1) AS T1                        WHERE T_BASE_PARTSALF.PARTID = T1.PARTID AND T_BASE_PARTSALF.FACTID=T1.FACTID 


[解决办法]
SQL code
;WITH TAS(SELECT IOSF.SAFENUM,IOSF.UPDATETIME,PART.PARTID,FACT.FACTID FROM T_IO_SAFESTORAGE IOSFLEFT JOIN T_BASE_PART PART ON IOSF.PARTCODEU8=PART.PARTCODELEFT JOIN T_BASE_FACT FACT ON IOSF.FACTCODE=FACT.FACTCODEWHERE ISACTIVE=1)UPDATE T_BASE_PARTSALF SET CURRSALF = T.SAFENUM,                        UPDATETIME=ISNULL(CONVERT(DATETIME,T1.UPDATETIME),GETDATE()),                        UPDATEMAN='SYSMAN'              FROM T WHERE T_BASE_PARTSALF.PARTID = T1.PARTID AND T_BASE_PARTSALF.FACTID=T1.FACTID这样试试,还有where后面的字段加索引 

热点排行