科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道大批量的数据应当怎样进行数据库的优化

大批量的数据应当怎样进行数据库的优化

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

许多程序员在利用一些前端数据库开发工具开发数据库应用程序时只注重用户界面的华丽,不重视查询语句的效率问题,本文以应用实例为基础,介绍查询优化技术在现实系统中的运用。

作者:赛迪网 yashi 来源:天新网 2008年4月22日

关键字: SQL Server SQL Mssql 数据库

  • 评论
  • 分享微博
  • 分享邮件

如果这个查询要被执行多次而不止一次,可以把所有未付款的客户找出来放在一个临时文件中,并按客户的名字进行排序:

SELECT cust.name,rcVBles.balance,……other columns 

FROM cust,rcvbles 

WHERE cust.customer_id = rcvlbes.customer_id 

AND rcvblls.balance>0 

ORDER BY cust.name 

INTO TEMP cust_with_balance 

然后以下面的方式在临时表中查询: 

SELECT * FROM cust_with_balance 

WHERE postcode>“98000”

临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以查询工作量可以得到大幅减少。

注意:临时表创建后不会反映主表的修改。在主表中数据频繁修改的情况下,注意不要丢失数据。

7.用排序来取代非顺序存取

非顺序磁盘存取是最慢的操作,表现在磁盘存取臂的来回移动。SQL语句隐藏了这一情况,使得我们在写应用程序时很容易写出要求存取大量非顺序页的查询。

有些时候,用数据库的排序能力来替代非顺序的存取能改进查询。

实例分析

下面我们举一个制造公司的例子来说明如何进行查询优化。制造公司数据库中包括3个表,模式如下所示:

1.part表

零件号     零件描述        其他列 

(part_num) (part_desc)      (other column) 

102,032   Seageat 30G disk     …… 

500,049   Novel 10M network card  …… 

……

2.vendor表

厂商号      厂商名      其他列 

(vendor _num) (vendor_name) (other column) 

910,257     Seageat Corp   …… 

523,045     IBM Corp     …… 

……

3.parven表

零件号     厂商号     零件数量 

(part_num) (vendor_num) (part_amount) 

102,032    910,257    3,450,000 

234,423    321,001    4,000,000 

……
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章