SQL真实谎言

上面的结论对 Oracle, 根据经验看。Sybase,Mysql,Informix 都成立,好可怕啊,不知道我前两年的顺序怎么做的原来我前两年都是谎言的边缘度过!

因为是 Internet 访问的所以,开发的一套大型门户系统。 Statement 会出现平安问题,这个在

至少还有一个更好的原因使我企业应用顺序中更喜欢使用 PreparedStat 对象 ,http://blog.csdn.net/hongbo781202/archive/2005/09/19/485092.aspx 里面已经讨论过了然后我抄一段 ORA CLE 电子杂志的话给大家看看:除了缓冲的问题之外。那就是平安性。传送给 PreparedStat 对象的参数可以被强制进行类型转换,使开发人员可以确保在插入或查询数据时与底层的数据库格式匹配。

平安性的问题就变得极为重要。传送给 PreparedStat 字符串参数会自动被驱动器忽略。最简单的情况下,当处理公共 Web 站点上的用户传来的数据的时候。这就意味着当你顺序试着将字符串 “ D'A ngelo 拔出到 VA RCHA R2 中时,该语句将不会识别第一个 “ 从而导致凄惨的失败。几乎很少有必要创立你自己的字符串忽略代码。

有恶意的用户会利用那些设计不完善的不能正确处置字符串的应用顺序。特别是公共 Web 站点上 , Web 环境中。没有首先通过 PreparedStat 对象处置的情况下,所有的用户输入都不应该传递给 SQL 语句。此外,用户有机会修改 SQL 语句的地方,如 HTML 隐藏区域或一个查询字符串上, SQL 语句都不应该被显示出来。这段话和我群里面的讨论一模一样。

再给大家看段话:通常认为 PreparedStat 对象比 Statement 对象更有效 , 关于性能问题。特别是如果带有不同参数的同一 SQL 语句被多次执行的时候。 PreparedStat 对象允许数据库预编译 SQL 语句,这样在随后的运行中可以节省时间并增加代码的可读性。

Oracl 环境中,开发人员实际上有更大的灵活性。当使用 Statement 或 PreparedStat 对象时, Oracl 数据库会缓存 SQL 语句以便以后使用。一些情况下 , 然而。由于驱动器自身需要额外的处置和在 Java 应用顺序和 Oracl 服务器间增加的网络活动,执行 PreparedStat 对象实际上会花更长的时间。

测试结果是同一 SQL 执行 5 次的情况下,实际上。 PrepareStat 比 Statement 要慢 3%.

再看看 http://www.oreilly.com/catalog/jorajdbc/chapter/ch19.html

里面有详细的图表说明为什么 Statement 比 PreparedStat 快。结论是一个 prepar statement 要执行 65 次以上才干赶上一个普通 statement 执行效率。

基本的原则就是   如果是多列 Index 一般应该保证这几个列都在查询条件中。而且对于单列 Index 只有满足查询进去的结果命中率在 20% 以下,另外一个问题就是 Index 使用。使用索引会才会加快速度!    否则可能会越 Index 越慢哦 !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值