欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年数据访问-与数据库建立连接DB2教程.docx

    • 资源ID:62210127       资源大小:14.78KB        全文页数:12页
    • 资源格式: DOCX        下载积分:9.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年数据访问-与数据库建立连接DB2教程.docx

    2022年数据访问-与数据库建立连接DB2教程在第一部分,我们探讨了如何优化 ASP 代码。在这一部分,我们把重点放在数据访问上。一般状况下,数据访问时间要比 ASP 代码说明,编译时间长,不要让数据检索成为影响 ASP 性能的瓶颈。首先,讲一些老生常谈的话。比如:须要声明变量,要用 Response.Write SQL_string 来进行调试,要用 On Error ResumeNext 来捕获错误。不要在 Application 和 Session 中存储 Connection 对象等等,都是一些许多人知道而又不屑一顾的常识。提高数据访问速度包含两方面内容:1 与数据库建立连接。2 检索数据。建立高效的连接是优化数据库访问的第一步。你须要了解连接池的概念( 参见文章: 连接池(Connection Pooling)介绍 );了解连接数据库的方法。另外,测试是很重要的,假如你想亲自进行测试,可以下载上一部分提到的 WAST ,它可以模拟大量用户同时点击的状况。在这里,假设你运用的数据库是 MS SQL Server 7.0 ,假如 操作系统是 NT ,那么你可以在性能监视器中监测SQL7 的用户连接数(counter:User Connections);假如操作系统是98的话,可以运用 SQL7 的 Profiler。下面,起先探讨如何与数据库建立连接,以及连接池的问题。1. 运用 OLEDB与数据库建立连接有三种方法:DSN,DSN-less,OLEDB( 参见文章: 用ADO连接数据库的三种方法 )。建议运用 OLEDB。2. 尽快释放数据库对象假设有 page1.asp 和 page2.asp,在多人同时点击的状况下,服务器可能会这样工作:第一个人:page1.asp 的1-5行,其次个人:page1.asp 的1-5行,第一个人:page1.asp 的6-20行,其次个人:page1.asp 的1-5行,第三个人:page1.asp 的1-5行,第四个人:page1.asp 的1-5行,其次个人:page1.asp 的6-20行,第一个人:page2.asp 的1-5行,.设想一下:有几千人同时访问你的主页,那么,服务器就会执行数千行,数万行语句后才回到第一个人恳求的页面上。因此,我们应尽可能快的处理某个功能,某个任务。看下列代码:<%rs1.Open strSQL1,cnn1cnn1 is connection objectrs2.Open strSQL2,cnn2rs3.Open strSQL3,cnn3.处理 rs1处理 rs2处理 rs3.rs1.Closers2.Closers3.Closecnn1.Closecnn2.Closecnn3.Close%>这种处理结果集的方法会占用比你想象要多的资源,正确的用法应为:<%rs1.Open strSQL1,cnncnn is connection object处理 rs1rs1.Closecnn1.Close.rs2.Open strSQL2,cnn处理 rs2rs2.Closecnn2.Close.rs3.Open strSQL3,cnn处理 rs3rs3.Closecnn3.Close.%>或许你会说:在 rs2 的处理中,我还须要 rs1 的值,所以不能在处理 rs2 前关闭 rs1。那么解决这个问题更好的方法是采纳GetRows 和 GetString,在后面会有具体的说明。尽快的释放对象是保证数据库连接重用的前提。( 参见文章: 让数据库的连接更有效 )3. 创建 Connection 对象,充分利用连接池。看下列代码:创建 Connection Object,打开 RecordSetSet cnn = Server.CreateObject("ADODB.Connection")cnn.Open strConnectionSet rs = Server.CreateObject("ADODB.RecordSet")rs.Open strSQL,cnn干脆打开 RecordSetSet rs = Server.CreateObject("ADODB.RecordSet")rs.open strSQL,strConnection在 asptoday 的 Enhancing Performance in ASP - Part 2 中对这两种方法进行了测试,结果表明干脆打开 RecordSet 比创建 Connection 快23%(快在页面处理上,检索数据库的速度是一样的。)所以,这篇文章的结论是:When working with asingle Recordset,pass the connection string into the ActiveConenction property.我对此有异议:快的代码不肯定是好的代码。首先要说明的是,干脆打开 RecordSet 的方法依旧要创建与数据库的连接,只不过是由 ADO 自动完成的。其次,这个Connection 只有在该页面处理完后才能被释放(不管是 Recordset.Close 还是 Set recordset = Nothing 都不能做到释放该对象)。Dim rsDim strcnnstrcnn = "Driver={SQL Server}Server=.;Database=pubs;UID=sa;PWD=;OLE DB Services=-1;"For i = 1 To 20Set rs = Server.CreateObject("ADODB.Recordset")rs.Open "SELECT * FROM Authors",strcnnrs.CloseSet rs = NothingNext运行上面的代码,在性能监视器中你会发觉数据库的连接被创建了20个!Dim cnn,rsstrcnn = "Driver={SQL Server}Server=.;Database=pubs;" _"UID=sa;PWD=;OLE DB Services=-1;"For i = 1 To 20Set cnn = Server.CreateObject("ADODB.Connection")cnn.Open strcnnSet rs = Server.CreateObject("ADODB.Recordset")rs.Open "SELECT * FROM Authors",cnnrs.CloseSet rs = Nothingcnn.CloseSet cnn = NothingNext采纳上面的代码,连接数只须要2个!(只为说明问题,不考虑速度)还有一点要说明的是:服务器处理 ASP 时不是一次只处理一个,也不是一次就把整个页面处理完,没有关闭的连接只会占用更多的资源。所以,尽快的释放 Connection ,使它回到连接池中才是良好的编程习惯。连接池是服务器共享的资源,它不属于某个ASP,也不属于某个 Session,或者某个 Application。WAST 是我常用的测试工具,但是测试是一种手段,代替不了实际。假如你对 WAST 的工作方式感爱好,可以到它的主页去看看。4. 为多个 RecordSet创建一个 Connection 对象Dim cnn,rs1,rs2,r3strcnn = "Driver={SQL Server}Server=.;Database=pubs;UID=sa;PWD=;OLE DB Services=-1;"Set cnn = Server.CreateObject("ADODB.Connection")cnn.Open strcnnSet rs1 = Server.CreateObject("ADODB.Recordset")rs1.Open "SELECT * FROM Authors1",cnnSet rs2 = Server.CreateObject("ADODB.Recordset")rs2.Open "SELECT * FROM Authors2",cnnSet rs3 = Server.CreateObject("ADODB.Recordset")rs3.Open "SELECT * FROM Authors3",cnn.道理很简洁,这种做法不须要为每一个 RecordSet 创建一个连接,只要传递一个引用就够了。5. 与多个数据库连接的问题。在大部份应用中,我们只对一个数据库进行操作,但有时也会遇到与多个数据库连接的状况。下面我们探讨两种连接方式:第一种:两个 Connection,两个 RecordSet。Set cnn1 = Server.CreateObject("ADODB.Connection")Set cnn2 = Server.CreateObject("ADODB.Connection")cnn1.Open "provider=sqloledb;data source=210.75.56.37;initial catalog=pubs;userid=coolbel;password=;"cnn2.Open "provider=sqloledb;data source=210.75.56.37;initial catalog=coolbel;userid=coolbel;password=;"Set rs1 = Server.CreateObject("ADODB.RecordSet")Set rs2 = Server.CreateObject("ADODB.RecordSet")rs1.Open "select * from authors",cnn1rs2.Open "select * from mytable",cnn2.其次种:一个 Connection,两个 RecordSet。Set cnn = Server.CreateObject("ADODB.Connection")cnn.Open "provider=sqloledb;data source=210.75.56.37;user id=coolbel;password=;"Set rs1 = Server.CreateObject("ADODB.RecordSet")Set rs2 = Server.CreateObject("ADODB.RecordSet")rs1.Open "select * from pubs.authors",cnnrs2.Open "select * from coolbel.mytable",cnn.其次种方法极不行取,不仅速度低,而且奢侈资源。其效率低下的根本缘由在于这种连接方式没有利用连接池,使得每一次恳求都要重新创建与数据库的连接。Click!测试第一种代码Click!测试其次种代码( coolbel 不稳定,须要多测试几遍。)6. 对于 Disconnected RecordSet,不要遗忘使 ActiveConnection = Nothing

    注意事项

    本文(2022年数据访问-与数据库建立连接DB2教程.docx)为本站会员(w***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开