当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-01-25 23:11:00  来源:本站整理

SQL中的n+1次select语句查询问题(1)[MSSQL防范]

赞助商链接



  本文“SQL中的n+1次select语句查询问题(1)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

假如当SQL数据库中select语句数目过量,就会影响数据库的性能,假如需求查询n个Customer对象,那么必须履行n+1次select查询语句,下文就将为您讲授这个n+1次select查询问题.

在Session的缓存中存放的是彼此关联的对象图.默许情形下,当Hibernate从数据库中加载Customer对象时,会同时加载全部关联的Order对象.以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键答应为null,图1列出了CUSTOMERS表和ORDERS表中的记录.


SQL中的n+1次select语句查询问题(1)

以下Session的find()办法用于到数据库中检索全部的Customer对象:

List customerLists=session.find("from Customer as c");

运行以上find()办法时,Hibernate将先查询CUSTOMERS表中全部的记录,然后按照每条记录的ID,到ORDERS表中查询有参照关系的记录,Hibernate将顺次履行以下select语句:

select * from CUSTOMERS;
select * from ORDERS where CUSTOMER_ID=1;
select * from ORDERS where CUSTOMER_ID=2;
select * from ORDERS where CUSTOMER_ID=3;
select * from ORDERS where CUSTOMER_ID=4;


  以上是“SQL中的n+1次select语句查询问题(1)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • SQL中JOIN和UNION辨别、用法及示例介绍
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • MySQL中CHAR和VARCHAR范例演变和详解
  • mysql中疾速插入百万条测试数据的办法
  • mysql中取字符串中的数字的语句
  • Mysql中校对集utf8_unicode_ci与utf8_general_ci的辨别阐明
  • mysql中RAND()随便查询记录效率问题和办理办法分享
  • mysql中字符串或字段中空格函数的删除
  • MySQL中关于varchar最大长度的问题
  • SQL中的CASE WHEN用法
  • sql中into的用法
  • 改正MySQL中一个用户的密码
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .