免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 1017of

jdbc问题,请多帮忙 [复制链接]

论坛徽章:
0
发表于 2005-12-02 17:26 |显示全部楼层
原帖由 1017of 于 2005-12-2 16:37 发表
乌鸦,你应该叫白色牛人啊,嘿嘿
第一:堆是不是应该为heap啊,堆栈好象是stack,不过我不知道这俩有什么区别;
第二:从7楼和8楼的内容是否sql是在database端被precompile的呢?那么所谓的命令缓冲区是属于谁的 ...

堆和堆栈在数据结构上是不一样的,我不知道java中有没有堆栈,所以我以为你说的stack只是误说呢~~

至于其他的,我快下班了,我回去吃完饭,再过来讨论阿~~

我一点都不牛,也是菜鸟,这样解决问题,我也学到不少东西呢。

论坛徽章:
0
发表于 2005-12-02 20:41 |显示全部楼层
我使用百度搜索的,搜索到了一个很有价值的文章

因为我有很多网站上不了,所以使用了百度快照。以下是快照的网址
http://cache.baidu.com/c?word=pr ... ;a=1&user=baidu

如果你看不了,我把它转贴出来共享,请关注一下我新近发的帖子。

论坛徽章:
0
发表于 2005-12-02 20:49 |显示全部楼层
热心啊

这样你怎么可能进步不了,娃哈哈

论坛徽章:
0
发表于 2005-12-02 21:45 |显示全部楼层
原帖由 1017of 于 2005-12-2 16:37 发表
第二:从7楼和8楼的内容是否sql是在database端被precompile的呢?那么所谓的命令缓冲区是属于谁的呢?OS或者database?解析和编译有什么不同呢?解析需要额外命令缓冲区空间或者其他存储空间吗?
第三:如果仅仅是动态sql的参数不同,addBatch与executeBatch符合preparedstatement的减少编译的条件吗?或者与数据库或jdbc驱动有关?
第四:9楼的it does affect which methods throw certain SQLExceptions,可能会出现什么现象呢?

我觉得precompile是由数据库提供支持的,命令缓冲区应该是属于数据库的。解析和编译的具体概念我记不清楚了,我觉得解析就像是将 SQL 分析成类似于语法树之类的,差不多就是解构了, 以方便作优化。编译应该就是生成了优化后数据库需要执行的命令把~~。因而我觉得解析需要空间,但是不是命令缓冲空间。
addBatch与executeBatch 应该更像是批量处理,至于说是否符合preparedstatement的减少编译次数的条件,我不太懂你的意思。这里的 preparedstatement 其实是个接口,具体的实现是在jdbc驱动中,而 addBatch与executeBatch 之类的不是所有的数据库都支持地。
最后一个,我认为它的意思是指得是“会影响那些方法抛出特定的一些sql异常”就是抛出异常的地方不同。

论坛徽章:
0
发表于 2005-12-02 21:48 |显示全部楼层
原帖由 wobushiwo 于 2005-12-2 20:49 发表
热心啊

这样你怎么可能进步不了,娃哈哈


:)

呵呵

刚好手头的一个项目快结束了,才有点空余时间学得自己感兴趣的东西~~~

论坛徽章:
4
2015年亚洲杯之阿联酋
日期:2015-03-10 10:32:022015年亚洲杯之阿曼
日期:2015-03-10 14:53:222015亚冠之水原三星
日期:2015-07-18 15:40:262015亚冠之塔什干棉农
日期:2015-07-27 20:52:05
发表于 2005-12-05 11:44 |显示全部楼层
原帖由 白色乌鸦 于 2005-12-2 21:45 发表

我觉得precompile是由数据库提供支持的,命令缓冲区应该是属于数据库的。解析和编译的具体概念我记不清楚了,我觉得解析就像是将 SQL 分析成类似于语法树之类的,差不多就是解构了, 以方便作优化。编译应该就是 ...

周末上不了网,早上又在受刑,没办法!go on.
我只知道堆和堆栈是不同的数据结构,至于java中是否用到了堆栈我也不清楚
我怎么感觉问题越问越多啊,我简直笨死了
根据你转的文章,生成的access plan应该就是解析后的产品吧,而且这个步骤好象不需要所谓命令缓冲区?而同一对象的多个preparestatement多次提交,根据你所说的应该是不需要多次编译,这个是规范?或者所有数据库需要遵循的潜规则?还是...........不知道怎么说。
还有很多相关问题,等我再想清楚一点继续请教你

论坛徽章:
0
发表于 2005-12-05 17:48 |显示全部楼层
我觉得命令缓冲区其实就是Statement Caches,你就觉得呢?
至于preparestatement,它是需要数据库提供支持的~~~

论坛徽章:
4
2015年亚洲杯之阿联酋
日期:2015-03-10 10:32:022015年亚洲杯之阿曼
日期:2015-03-10 14:53:222015亚冠之水原三星
日期:2015-07-18 15:40:262015亚冠之塔什干棉农
日期:2015-07-27 20:52:05
发表于 2005-12-06 12:36 |显示全部楼层
我想所谓的命令缓冲区也许需要根据不同的数据库而定,因为我曾经试图提高statement cache,但其效果并不明显。曾经有位高人说,可能与rpc的buffer cache有关,但我不知道是否确定,以及与数据库有什么关系。
这种机制我已经明白了,但具体到每种数据库产品是否都遵循同样原则,或者在细节实现上是否有不同之处,恐怕还需要时间与更多的资料去证明。问题在于,哪里有这样的资料呢,如果你告诉我这些都是各个厂商的内部保密资料,我会哭的。
此外,我想能更多的了解jdbc、数据库、OS直接的关系与配合情况,能推荐给我一些资料或者连接吗?多谢。

论坛徽章:
0
发表于 2005-12-06 13:01 |显示全部楼层
你想做什么呀?

我的那些资料都是搜索来的,我也没有固定的查资料的地方哦~~~

如果要涉及到具体的数据库,我觉得他们各自的帮助文档应该会写清楚,他们关于这方面的大致实现~~

论坛徽章:
4
2015年亚洲杯之阿联酋
日期:2015-03-10 10:32:022015年亚洲杯之阿曼
日期:2015-03-10 14:53:222015亚冠之水原三星
日期:2015-07-18 15:40:262015亚冠之塔什干棉农
日期:2015-07-27 20:52:05
发表于 2005-12-06 15:11 |显示全部楼层
你这话怎么听着那么吓人啊,我只是想多了解点细节,不是想搞破坏,不要冤枉我哦
因为我在一些数据库对动态sql以及batch做了一些实验,发现performance差异很大,当然实验不是很复杂,而且应该也不会是数据库调优的问题,所以我想找点资料比较一下各种数据库对这些问题的详细支持情况与细节。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP