SQL语言艺术(笔记)
来源:互联网 发布:天空左岸java 编辑:程序博客网 时间:2024/05/21 19:22
1.保持数据库连接的稳定,因为每一次连接都会耗费大量资源,如图:
将要操作的数据组成对象,可以尽可能减少程序和数据库核心间的交互次数,从而使性能产生另一次飞跃。
看似简单的数据库连接隐藏着这些操作:
- 首先,客户端与远程服务器的监听程序(listener program)建立联系。
- 监听程序要么创建一个进程或线程来执行数据库核心程序,要么直接或间接地把客户请求传递给已存在的服务器进程
- 数据库还必须为每次session建立新环境,以跟踪他的行为。
- 建立新session前,DBMS还要执行登录触发器(logon trigger),还要初始化存储过程和程序包。
- 客户端进程和服务器进程还要完成握手协议。
还有程序和数据库之间的交互也有开销,即使数据库连接已经建立并且未中断,程序和DBMS核心之间的上下文切换(context switch)也是有代价的,所以,如果DMBS支持数据通过数组,对象传递,要毫不犹豫的使用它。
2.要重视业务处理,站的远一些,把握大局,比如能用union之类的聚合查询会比多次简单的查询效率高很多。
3.暂时工作表意味着已不太合理的方式存储更多信息。
4.尽可能多地把事情交给数据库优化器来处理。
5.在合理范围里,充分利用每一个数据库的连接尽可能完成尽量多的任务。
6.代码离DMBS核心越近,他就运行越快。
7.检查数据库活动,看他是否与当时正进行的业务活动保持合理的一致性。
8.有可能的话,用一个语句处理多个更新;尽量减少对同一表的重复访问。
9.优化器对自定义函数的代码无能为力。
10.SQL是声明性语言(declarative language),所以设法是你的代码超越业务过程的规格说明。
11.一般建议是进行防御式编程(code defensively),在开始处理之前检查所有参数的合法性,但实际上,对数据库编程而言,尽量同时做几件事的进攻式编程有切实的优势。
12.为了取得好的优化效果,应将大部分工作安排在关系层。
13.如果是若干个小查询,优化器将个个优化;如果是一个大的查询,优化器会把它作为一个整体优化。
14.使用SQL必须讨论的问题:
- 获得结果集所需访问的数据量(*)
- 定义结果集所需的查询条件
- 结果集的大小
- 获得结果集所涉及的表的数量
- 多少用户会同时修改这些数据
15.熟练的开发者应努力使响应时间与返回的记录数成正比
16.当视图返回不必要的元素时,别把视图内嵌在查询中,而是应将视图分解,将其组成部分加到查询主体中。
- SQL语言艺术(笔记)
- SQL语言的艺术学习笔记
- SQL语言艺术
- 《sql 语言艺术》 概要
- 【转】SQL语言艺术
- sql语言艺术(2)简洁的SQL
- sql语言艺术(3)SQL的进攻式编程
- 读《SQL语言艺术》序
- 读《SQL语言艺术》设计
- R 语言编程艺术笔记
- sql语言艺术(1) 接近dbms核心
- ql语言艺术(4) SQL的本质
- R语言编程艺术学习笔记(快速入门、向量)
- R语言编程艺术学习笔记(矩阵、数组、列表)
- SQL查询艺术学习笔记--SQL触发器
- 读《SQL语言艺术》设计(2)
- 有关数据冗余-sql语言艺术
- 《sql语言艺术》读书笔记-函数知多少
- CICS事务网关-CTG原理及操作
- Android学习系列(1)--为App签名(为apk签名)
- 第17周报告1
- Verilog HDL语言的用户自定义元件
- Spring@Autowired注解与自动装配
- SQL语言艺术(笔记)
- C++多线程(五)
- python os模块
- Android APK反编译详解(附图)
- Verilog HDL仿真激励的产生
- IE6:防止Select等元素遮挡弹出Div层
- Android如何防止apk程序被反编译
- 四大安全会议
- Android学习系列(2)--App自动更新之通知栏下载