1.查询分析器是用OLEDB还是ODBC API或是用的DB-Library?
2.OLEDB,ODBCAPI,DB-Library在功能上有何差别?性能上有什么差别?
3.查询分析器查询无论多大的数据量,都不会占用客户端多少内存,这是如何实现的?用服务器游标是能减少客户端内存占用,但是总要把数据加载到结果表单,也就是必定会在内存吧,怎么会只占那么少内存.而且它加载数据的速度很快,我猜测它是在拉动滚动条时动态加载的数量,但是如果这样的话就不能使用高效的仅向前游标了,因为用户还会往回拉滚动条.在不使用仅向前游标时如何还能这样快速地加载数据呢?我用ADO做过大量尝试,内存和速度只能保证其一,想不通查询分析器是如何实现的.

解决方案 »

  1.   

    1 查询分析器/企业管理器使用ODBC
    2 第二个问题,太泛了,也太理论化了,可以gg之
    3 这个我觉得是楼主一个认识的误区,用户回拉滚动条,不代表就不能使用只读游标, 无论往下还是往上拉,数据实际上是已经选出来了,只是显示的问题,可能数据已放在了本地的某个(些)临时文件中,通过内存映射来处理的, 就像你在网页上摆了一个很长的表格,表格里的数据是datareader读出来(向前只读),它已输出到客户端了,与游标类型已经完全没有关系了
      

  2.   

    非常感谢你的回答!
    1.关于查询分析器使用的哪种方式连接数据库我在其他版块上也问过,很多都认为是用OLEDB API做的,而且数据库经常给出的错误提示有时候是提示ODBC的错误,有些是提示OLEDB的错误,所以我也搞不清到底是用的哪个。不过我知道的是OLEDB比ODBC快。
    2.有一次我看到说OLEDB,ODBCAPI,DB-Library有一些实现了SQL SERVER的全部功能,有些只实现了部分功能,可是现在找不到那份资料了,可能联机从书里有,但找不着啊,所以顺便在这里问问了,到底哪些实现了SQLSERVER的全部功能?哪些只是部分功能?
    3.我一直在想查询分析器是如何实现的,也用过临时文件,但是效果不够理想,主要是用服务器游标时很多功能不好实现,只是查询速度够快而已,而用客户端游标则下载数据耗时巨大,简直不可忍受。而且用临时文件时写入和读取的速度都比较慢,耗时也不少,不过对内存映射这个概念还不太熟悉,先去GG一下吧