`
txf2004
  • 浏览: 7132156 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ADO的优化

阅读更多
方法一、尽量使用复杂的SQL来代替简单的一堆 SQL.

  同样的事务,一个复杂的SQL完成的效率高于一堆简单SQL完成的效率。有多个查询时,要善于使用JOIN。
oRs=oConn.Execute("SELECT * FROM Books")
while not oRs.Eof
strSQL = "SELECT * FROM Authors WHERE AuthorID="&oRs("AuthorID") oRs2=oConn.Execute(strSQL)
Response.write oRs("Title")&">>"&oRs2("Name")&"
&q uot;
oRs.MoveNext()
wend
要比下面的代码慢:
strSQL="SELECT Books.Title,Authors.Name FROM Books JOIN Authors ON Authors.AuthorID=Books.AuthorID"
oRs=oConn.Execute(strSQL)
while not oRs.Eof
Response.write oRs("Title")&">>"&oRs("Name")&"
&qu ot;
oRs.MoveNext()
wend


方法二、尽量避免使用可更新 Recordset

oRs=oConn.Execute("SELECT * FROM Authors WHERE AuthorID=17",3,3)

oRs("Name")="DarkMan"

oRs.Update()

要比下面的代码慢:
strSQL = "UPDATE Authors SET Name='DarkMan' WHERE AuthorID=17"
oConn.Execute strSQL

方法三、更新数据库时,尽量采用批处 理更新

  将所有的SQL组成一个大的批处理SQL,并一次运行;这比一个一个地更新数据要有效率得多。这样也更加满足你进行事务处理 的需要:
strSQL=""
strSQL=strSQL&"SET XACT_ABORT ON\n";
strSQL=strSQL&"BEGIN TRANSACTION\n";
strSQL=strSQL&"INSERT INTO Orders(OrdID,CustID,OrdDat) VALUES('9999','1234',GETDATE())\n";
strSQL=strSQL&"INSERT INTO OrderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','01','G4385',5)\n";
strSQL=strSQL&"INSERT INTO OrderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','02','G4726',1)\n";
strSQL=strSQL&"COMMIT TRANSACTION\n";
strSQL=strSQL&"SET XACT_ABORT OFF\n";
oConn.Execute(strSQL);
其中,SET XACT_ABORT OFF 语句告诉SQL Server,如果下面的事务处理过程中,如果遇到错误,就取消已经完成的事务。

方法四、数据库索引

  那些将在Where子句中出现的字段,你应该首先考虑建立索引;那些需要排序的字段,也应该在考虑之列 。
在MS Access中建立索引的方法:在Access里面选择需要索引的表,点击“设计”,然后设置相应字段的索引.
在MS SQL Server中建立索引的方法:在SQL Server管理器中,选择相应的表,然后“设计表”,点击右键,选择“Properties”,选择“indexes/keys”

方法五、避免使Text字段太大

  当字符串的值大小不固定时,用varchar比用char的效果要好 些。我曾经看到一个例子程序,字段被定义为TEXT(255),但是他的取值经常只有20个字符。这个数据表有50k个记录,从而使这个数据库很大,大的数据库必然较慢。
分享到:
评论

相关推荐

    ado.net性能优化

    【ado.net性能优化】 在开发ASP.NET应用时,性能优化是一项关键任务,特别是涉及到数据库交互时。ADO.NET作为.NET框架中的重要组件,负责处理数据库连接和数据操作,对其进行优化能够显著提升网站的运行效率。以下...

    优化ADO的执行效率

    可帮助你解决ADO执行效率优化的问题,提高ADO的使用效率。

    vc ADO 如何连接sql server数据库?.doc.doc

    3. **高效性**:ADO 优化了网络通信,减少数据传输量。 4. **轻量化**:ADO 采用最少的层级结构进行前端与数据源之间的交互。 **OLE DB** 是一组组件对象模型 (COM) 接口,它不仅继承了 **ODBC** 的功能,还扩展了...

    LabSQL-ADO-functions.rar_ADO_ADO数据库_LabSQL ADO Functions_LabVIEW

    9. **StruckGX5**标签可能指的是一个特定的硬件或软件版本,这可能意味着LabSQL ADO Functions已经过优化,适用于StruckGX5环境,提供对这种特定硬件或系统架构的良好支持。 在实际应用中,LabVIEW开发者可以结合...

    ADO 2[1].5 Microsoft ADO 2.5 程序员参考

    ADO 2.5是ADO系列的一个重要版本,它在早期版本的基础上进行了优化和增强,提供了更好的性能、更多的功能和更丰富的接口。这个版本尤其对XML支持进行了加强,使得数据的交换和存储更加灵活。此外,ADO 2.5还支持ADO...

    Win10版本的ADO组件包

    此版本的ADO包含了对新功能和性能优化的支持,以及可能的安全修复和改进,确保与Win10系统的兼容性和稳定性。 **msado注册.txt** 这个文件很可能是安装或注册ADO组件时使用的批处理脚本或说明文件。通常,注册文件...

    ADO与ADO_NET编程指南

    10. 性能优化: - 通过合理使用连接池,可以提高应用程序的性能和响应速度。 - 避免大数据集的使用,尽可能减少内存中的数据量。 总之,《ADO与ADO.NET编程指南》涵盖了从传统ADO到现代ADO.NET的转变,是学习.NET...

    msado15各版本ADO

    例如,新版本可能增加了对新数据库引擎的支持,或者优化了对大数据量处理的性能。 4. **64位与32位兼容性**:"X64"和"X86"目录表明了软件的平台兼容性。64位版本的ADO用于64位操作系统,而32位版本用于32位操作系统...

    msado15.dll 32位和64位各版本的ADO都有

    在IT领域,ActiveX Data Objects (ADO) 是微软公司提供的一种数据访问接口,它使得开发者能够轻松地在各种应用程序中存取数据。...同时,了解不同版本的ADO特性,有助于优化应用程序的数据访问效率和稳定性。

    ado2.h和ado2.cpp文件

    描述中提到的"VC++封转的ado文件",意味着开发者已经将ADO的COM接口封装成了C++类,使得使用更方便,同时也可能添加了一些特定的功能或者优化,以适应项目需求。这种方式使得在C++项目中,无需直接处理COM的复杂性,...

    Win-xp ado

    9. **ADO性能优化** - 使用批处理操作可以提高性能,例如一次执行多个Command。 - 关闭不必要的Recordset和Connection,以释放系统资源。 10. **ADO的扩展** - ADO.NET是.NET Framework中的数据访问技术,虽然不...

    vc++下可以使用的ADO封装类

    通过阅读和理解`AdoRecordSet.cpp`、`Ado.cpp`和`AdoCommand.cpp`中的源代码,开发者可以更好地掌握这些类的内部实现和使用方式,进一步优化自己的数据库应用程序。同时,`AdoRecordSet.h`、`Ado.h`和`AdoCommand.h`...

    ADO.NET 应用程序中实现和获得最佳性能

    在优化ADO.NET应用程序时,还有一些通用技巧和问题需要考虑。例如,关闭不再使用的Connection和DataReader以释放资源,避免不必要的数据转换,使用参数化查询防止SQL注入攻击,以及利用批量操作提升数据操作效率。 ...

    msado60_Backcompat

    在"msado60_Backcompat"的场景中,可能包含了32位版本的ADO库文件,这些文件经过优化或者修改,以便在64位系统上与32位的Windows 2003环境兼容。这些库文件可能包括了特定的动态链接库(DLLs),如msado15.dll,...

    VC使用ADO简单示例

    在VC(Visual C++)中,ADO(ActiveX Data Objects)是一种强大的工具,用于与各种数据库进行交互,包括但不限于SQL Server ...在实际开发中,还需要注意错误处理、事务管理、性能优化等方面,以确保程序的稳定性和效率。

    ADO.NET技术内幕

    了解如何优化ADO.NET代码是关键,包括减少数据库往返次数、使用参数化查询防止SQL注入、合理利用连接池等技巧。 通过学习本教程,你将能够熟练掌握ADO.NET的基本概念,学会如何使用它来构建高效、健壮的数据库应用...

    c++ ADO封装类c++ ADO封装类c++ ADO封装类

    在设计C++ ADO封装类时,还需要考虑线程安全、连接池管理、事务处理和性能优化等因素。例如,使用智能指针管理ADO对象以自动释放资源,实现多线程环境下的并发访问控制,以及合理设置连接池大小以提高应用程序的响应...

    VC Ado数据库操作类(ado2)

    9. **数据库连接池**:高级的`ado2`实现可能包括数据库连接池管理,优化资源利用率,减少频繁创建和销毁连接的开销。 10. **兼容性**:`ado2`作为通用的数据库操作类库,应该考虑了与其他数据库系统的兼容性,如...

    php mysql ADO手册

    9. 性能优化:在实际应用中,还需要关注性能优化,例如使用预编译的SQL语句、适当的数据类型、索引策略以及连接池等方法。 通过学习《PHP MySQL ADO手册》,开发者将能够熟练地使用PHP连接和操作MySQL数据库,掌握...

    ADO.NET微软出品教程PPT

    - **ADO_07.ppt** 最后一章可能涵盖Error Handling(错误处理)和Performance Optimization(性能优化),教授如何处理可能出现的异常,并提供一些提高ADO.NET应用程序效率的技巧。 每个章节的注解可能包含重点...

Global site tag (gtag.js) - Google Analytics