最近,我一直在运行一些经典ASP代码,并且想知道使用以下连接是否存在性能差异:
Provider=SQLOLEDB;server=NTSERVERNAME\SQLEXPRESS;database=DBNAME;uid=USER;pwd=PASSWORD;或
Provider=SQLNCLI;server=NTSERVERNAME\SQLEXPRESS;database=DBNAME;uid=USER;pwd=PASSWORD;我似乎还记得,某些提供程序选项(主要是Server 2000及更早版本)会对性能产生影响,但我无法找到这两个提供程序是否存在这种情况。
我所能找到的唯一一件事就是解释后一篇文章将允许我使用Server 2005中的一些新特性(XML数据类型等)。还有其他一些功能支持问题--但与性能无关。
发布于 2011-05-19 21:53:51
我和Erland Sommarskog谈过这件事,下面是他的回应。
我参加了PASS 2005关于SQL本机客户端的演示。当时SQL Server客户端的PM表示,对于ODBC,它们已经实现了20%的perf改进,但是对于OLE DB来说,这几乎是均匀的。
但是,由于SQLNCLI提供了更多的特性,这可能是要使用的提供程序。再说一遍,使用旧的ADO,很多特性无论如何都是不可用的。
HTH
发布于 2020-06-24 21:33:45
根据微软,SQLNCLI是不推荐的,应该首选MSOLEDBSQL。
但是,在SSIS中,我不得不使用SQLNCLI :我意外地得到了一些‘OLE DB接口-- OLE适配器使用的OLE提供程序无法在"DT_DBTIMESTAMPOFFSET“和"DT_WSTR”之间转换的.SSIS数据流中的消息。
经过一些调试后,我发现使用MSOLEDBSQL时,某些数据类型不能正确地映射。datetime2或日期时间偏移将分别映射到SSIS数据类型DT_WSTR,而不是DT_DBTIMESTAMP2和DT_DBTIMESTAMPOFFSET。
https://dba.stackexchange.com/questions/2777
复制相似问题