ms sql-如何优化下面语句,可以更高效率写入MSSQL 。(ASP+MSSQL)

问题描述

如何优化下面语句,可以更高效率写入MSSQL 。(ASP+MSSQL)
现在数据量大,经常运行后无响应。如何优化下面语句,可以更高效率写入MSSQL 。(ASP+MSSQL)

<%

sub autoActfp()        i1=csng(request(""i1""))        i2=csng(request(""i2""))        response.write ""<p style='height:30px;background:#483D8B;color:white;'><b>&nbsp;根据数据量的大小,整个过程大约需要1-3分钟,请稍候……。</b></p>""        for i3=1 to i2            if i3 <> i2 then                Response.Write ""<p> 第 <b>""&i3&""</b> 部分供需数据,已运算完成。</p>""             else                Response.Write(""<p> 正在运算第 <b>""&i3&""</b> 部分供需数据,请等待...</p>"")             end if        next        Response.Flush()        set r0 = conn.execute(""select top 500 DD01 from ZDIDAN where DD03 = 'O' AND DD01 not in(select top ""&i1&"" DD01 from ZDIDAN where DD03 = 'O')"")        Do While Not r0.Eof            set r1 = conn.execute(""SELECT TA01TA07 FROM ZDIDTA WHERE TA02 ='""&r0(0)&""' AND TA09='I' ORDER BY TA03TA01"")            Do While Not r1.Eof                call Setb(r0(0)r1(0)r1(1)) '循环子级分类     自动分配            r1.Movenext            Loop            r1.Close            Set r1 = Nothing        r0.Movenext        Loop        r0.Close        Set r0 = Nothing        i1=i1+500        i2=i2+1        ttx = conn.execute(""select count(*) from ZDIDAN where DD03 = 'O'"")(0)        if i1 < ttx then            response.write ""<script>window.open('?nt=vActfp&ixt=1&i1=""&i1&""&i2=""&i2&""''NewWin1');</script>""        end if        Response.Write(""<p> <font color=red size=3 COLSPAN=5>全部计算完毕。<input type=button value=关闭窗口 onclick=""""window.close()""""><p>"")         Response.Flush()        response.endend subsub Setb(x1x2x3)          '自动分配    iz = CSng(x3)    i = ""1""    set r2 = conn.execute(""SELECT TA01TA07-TA13 FROM ZDIDTA WHERE TA02 ='""&x1&""' AND TA09='O' and TA07-TA13>0 ORDER BY TA10TA03TA01"")    if not r2.eof then        Do While Not r2.Eof            izs = CSng(r2(1))            if iz > izs then                conn.execute(""insert into ZDIDTB(TB01TB02TB03TB14TB15) VALUES('""&x2&""''""&x1&""''""&r2(0)&""'&i&""&izs&"")"")                conn.execute(""Update ZDIDTA SET TA13=TA13+""&izs&"" WHERE TA01='""&r2(0)&""' AND TA02='""&x1&""'"")                iz = iz-izs            else                conn.execute(""insert into ZDIDTB(TB01TB02TB03TB14TB15) VALUES('""&x2&""''""&x1&""''""&r2(0)&""'&i&""&iz&"")"")                conn.execute(""UPDATE ZDIDTA SET TA13=TA13+""&iz&"" WHERE TA01='""&r2(0)&""' AND TA02='""&x1&""'"")                Exit Sub            end if            i = i + 1        r2.Movenext        if r2.eof then exit do '防上造成死循环        Loop    else        exit sub    END IFend sub

%>

解决方案

asp本身就是一种效率很低的解释语言,用asp.net改写下,就有3-5倍的提升。

解决方案二:
通过存储过程,数据传递给函数参数来调用插入

时间: 2024-08-30 06:30:51

ms sql-如何优化下面语句,可以更高效率写入MSSQL 。(ASP+MSSQL)的相关文章

MS SQL Server入门教程

SQL Server 是一个关系数据库管理系统,它最初是由Microsoft,Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本.在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了,Microsoft将SQL Server 移植到Windows NT. MS SQL基础教程:SQL Server 2000 简介 MS SQL基础教程:SQL Server 2000 的新特性 MS SQL基础教程:SQ

SQL Server 2000优化SELECT语句方法

本文是SQL Server SQL语句优化系列文章的第一篇.该系列文章描述了在Micosoft's SQLServer2000关系数据库管理系统中优化SELECT语句的基本技巧,我们讨论的技巧可在Microsoft's SQL Enterprise Manager或 Microsoft SQL Query Analyzer(查询分析器)提供的Microsoft图形用户界面使用. 除调优方法外,我们给你展示了最佳实践,你可应用到你的SQL语句中以提高性能(所有的例子和语法都已在Microsoft

数据库优化实践:MS SQL优化开篇

数据库定义: 数据库是依照某种数据模型组织起来并存在二级存储器中的数据集合,此集合具有尽可能不重复,以 最优方式为特定组织提供多种应用服务,其数据结构独立于应用程序,对数据的CRUD操作进行统一管理和 控制,数据库是数据管理的高级阶段,是在文件系统上发展起来的. 基本结构: 数据库分三个层次:分别为物理数据层.概念数据层.逻辑数据层. 物理数据层:它是数据库的最内层,是物理存贮设备上实际存储的数据的集合.这些数据是原始数据 ,是用户加工的对象,由内部模式描述的指令操作处理的位串.字符和字组成.

数据库ms SQL常用语句

  数据库ms SQL常用语句 truncate table test --删除表中的所有数据 alter table test alter column bb varchar(10) --修改表中字段的定义 alter table aa add constraint fk foreign key([aa]) references bb([aa]) --外键约束 alter table bb add constraint pr primary key(aa) --主键 exec sp_addty

Sql效能优化总结与sql语句优化篇

今晚继续进行Sql效能问题的分享,今天主要是一些具体的sql优化方法和思路分享,若看过后你也有其他想法,欢迎一起探讨,好了,进入今天的主题.   针对性地对一些耗资源严重的具体应用进行优化   出现效能问题时,首先要做的是什么?这个问题我问过不少同事,有人说凭经验对出问题的sql进行优化,如我们一般说的要合理使用索引,尽量不要使用前面带*号的Like语句,不要再比较操作符前边进行计算或使用函数等等,这些道路都是对的,但经验有时候不一定能解决问题.问题出现时,首先要做的是确定问题点是什么,只有正确

MS SQL Server查询优化方法(1)●查询速度慢的原因很多,常见如下几种:

server|速度|优化 MS SQL Server查询优化方法(1) ●查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源.9.返回了不必

MS SQL Server数据库查询优化及分页算法

server|分页|数据|数据库|算法|优化 探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的"红头文件"一表的部分数据结构:CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名    [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键    [title] [varchar] (80) COLLATE

MS SQL基础教程:存储过程概述

在大型数据库系统中,存储过程和触发器具有很重要的作用.无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合.就 本质而言,触发器也是一种存储过程.存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快.SQL Server 2000 不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程. 12.1.1 存储过程的概念 存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库.中用户通过指定存储过程的

MS SQL统计信息浅析下篇

   MS SQL统计信息浅析上篇对SQL SERVER 数据库统计信息做了一个整体的介绍,随着我对数据库统计信息的不断认识.理解,于是有了MS SQL统计信息浅析下篇. 下面是我对SQL Server统计信息的一些探讨或认识,如有不对的地方,希望大家能够指正. 触发统计信息更新条件疑问     关于这个触发统计信息更新的条件.因为我在很多资料上看到过,例如Microsoft  SQL Server 企业级平台管理实践. 我自己上篇也是这样解释的.    1:普通表上,触发数据库自动更新统计信息