这一章描述了高效访问数据库的基本原则,在战略大局上把握高性能的关键因素
查询识别
程序设计上应该考虑查询识别,即根据SQL讯速定位到调用该SQL的应用程序代码,有助于定位性能问题
减少于数据库交互的次数
使用连接池,避免反复建立数据库连接。连接建立后,尽量批量提交SQL,减少于数据库交互的次数
大局上跳出业务逻辑的限制
把握大局,跳出业务逻辑的限制。SQL是声明性语言,所以设法使你的代码超越业务过程的规格说明,尽量用一条SQL完成所需的操作,减少对表的重复访问,避免建立临时表,中间结果等。尽量避免借助cursor进行循环操作。
保持schema稳定
尽量不要在应用程序中使用DDL来改变Schema,DDL的作用是以核心数据库的数据字典为基础的,数据字典是所有数据库操作的中心,任何对数据字典的操作都会引起全局加锁,对系统性能影响巨大。唯一可以接受的DDL操作是对table进行truncate,它能极快地清空表中所有的数据,但是truncate操作无法通过回滚恢复
慎用自定义函数
自带函数比任何第三方代码更接近数据库核心,效率也更高些,SQL离核心越近,运行得越快。对自定义函数更应该谨慎,因为优化器对定义函数的代码无能为力
数据库负载符合业务逻辑的特性
数据库要符合业务逻辑的特性,于当时正在进行的业务活动保持合理一致性,如果查询customer表的次数比同一时间正在处理的客户量多20倍,则很有可能对表进行了重复访问,而不是一次性找出所需的信息
进攻式编程
一般情况下我们进行防御编程,先检查条件的合法性,再执行操作,对数据库编程而言,进攻式编程有切实的优势。比如插入数据的时候,我们很可能会先select count(*)来判断数据是否已存在,如果不存在再执行insert,好的作法是直接insert,再根据更新的行数来判断有无重复。乐观锁就属于进攻式编程,先假设更新无冲突,再检查执行结果,只有冲突真的发生时才进行控制处理,乐观锁比悲观锁吞吐量高得多
分享到:
相关推荐
SqlServer实验四:事务与数据库备份.doc SqlServer实验四:事务与数据库备份.doc SqlServer实验四:事务与数据库备份.doc SqlServer实验四:事务与数据库备份.doc SqlServer实验四:事务与数据库备份.doc SqlServer...
第2章,发动战争:高效访问数据库 解释如何进行程序设计才能高效访问数据库 第3章,战术部署:建立索引 揭示为何建立索引,如何建立索引 第4章,机动灵活:思考 SQL语句解释如何设计 SQL语句第5章,了如指掌:...
第2章,发动战争:高效访问数据库 解释如何进行程序设计才能高效访问数据库 第3章,战术部署:建立索引 揭示为何建立索引,如何建立索引 第4章,机动灵活:思考SQL语句 解释如何设计SQL语句 第5章,了如指掌:理解...
1. (分值:1.0 分)在MS SQL Server 中,关于数据库的说法正确的是( ) A: 一个数据库可以不包含事务日志文件。 B: 一个数据库可以只包含一个事务日志文件和一个数据库文件。 C: 一个数据库可以包含多个数据库文件...
第2章,发动战争:高效访问数据库 解释如何进行程序设计才能高效访问数据库 第3章,战术部署:建立索引 揭示为何建立索引,如何建立索引 第4章,机动灵活:思考SQL语句 解释如何设计SQL语句 第5章,了如指掌:理解...
1. sakila.mwb 模型中,表结构里每个字段前面的小标记分别表示什么意思 2. 图中哪部分体现影片-演员关系 3. 如果已知某个顾客姓名,要找到他租借的
还原sqlserver2008数据提示:因为数据库正在使用,所以无法获得对数据库的独占访问权
Microsoft SQL Server 2008技术内幕:T-SQL语言基础的示例数据库无法再国外的网址上下载,这个是已经下载好的
数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB 数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB 数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB
2 发动战争:高效访问数据库 查询的识别 保持数据库连接稳定 战略优先于战术 先定义问题,再解决问题 保持数据库Schema稳定 直接操作实际数据 用SQL处理集合 动作丰富的SQL语句 充分利用每次数据库访问 接近DBMS核心...
SQL Server数据库应用与开发:第04章 Transact-SQL语言基础.ppt
数据库系统概论:第3章:关系数据库标准语言SQL.ppt
全文提供了SQL语言的命令数据库的通用命令
关系数据库标准语言SQL关系数据库标准语言SQL关系数据库标准语言SQL关系数据库标准语言SQL
sql-数据库-实验九:T-SQL语言、存储过程及数据库的安全性.doc
实验目的与要求 (1)了解SQL Server 2019安装的硬件要求和软件环境。 (2)掌握SQL Server 2019 各...(4)利用SQL Server 2019管理平台访问系统自带的 pubs 数据库 (5) 查询编辑器的使用。 (6)学会附加数据库NORTHWND
SQL语言艺术,涉及到SQL数据库开发必备的资料
BeetlSQL的目标是提供开发高效,维护高效,运行高效的数据库访问框架,在一个系统多个库的情况下,提供一致的编写代码方式。支持如下数据平台。传统数据库:MySQL(国内兼容MySQL协议的各种大数据库),MariaDB,Oracle,...
ISO IEC 9075-2-2023 (源文件,可复制文字)信息技术-数据库语言SQL 第2部分:基础.rar