`
septem
  • 浏览: 54477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL语言艺术(二)发动战争:高效访问数据库

    博客分类:
  • sql
阅读更多
这一章描述了高效访问数据库的基本原则,在战略大局上把握高性能的关键因素

查询识别

程序设计上应该考虑查询识别,即根据SQL讯速定位到调用该SQL的应用程序代码,有助于定位性能问题

减少于数据库交互的次数

使用连接池,避免反复建立数据库连接。连接建立后,尽量批量提交SQL,减少于数据库交互的次数

大局上跳出业务逻辑的限制

把握大局,跳出业务逻辑的限制。SQL是声明性语言,所以设法使你的代码超越业务过程的规格说明,尽量用一条SQL完成所需的操作,减少对表的重复访问,避免建立临时表,中间结果等。尽量避免借助cursor进行循环操作。

保持schema稳定

尽量不要在应用程序中使用DDL来改变Schema,DDL的作用是以核心数据库的数据字典为基础的,数据字典是所有数据库操作的中心,任何对数据字典的操作都会引起全局加锁,对系统性能影响巨大。唯一可以接受的DDL操作是对table进行truncate,它能极快地清空表中所有的数据,但是truncate操作无法通过回滚恢复

慎用自定义函数

自带函数比任何第三方代码更接近数据库核心,效率也更高些,SQL离核心越近,运行得越快。对自定义函数更应该谨慎,因为优化器对定义函数的代码无能为力

数据库负载符合业务逻辑的特性

数据库要符合业务逻辑的特性,于当时正在进行的业务活动保持合理一致性,如果查询customer表的次数比同一时间正在处理的客户量多20倍,则很有可能对表进行了重复访问,而不是一次性找出所需的信息

进攻式编程

一般情况下我们进行防御编程,先检查条件的合法性,再执行操作,对数据库编程而言,进攻式编程有切实的优势。比如插入数据的时候,我们很可能会先select count(*)来判断数据是否已存在,如果不存在再执行insert,好的作法是直接insert,再根据更新的行数来判断有无重复。乐观锁就属于进攻式编程,先假设更新无冲突,再检查执行结果,只有冲突真的发生时才进行控制处理,乐观锁比悲观锁吞吐量高得多
4
0
分享到:
评论

相关推荐

    SQL语言艺术pdf

    第2章,发动战争:高效访问数据库 解释如何进行程序设计才能高效访问数据库 第3章,战术部署:建立索引 揭示为何建立索引,如何建立索引 第4章,机动灵活:思考 SQL语句解释如何设计 SQL语句第5章,了如指掌:...

    关系数据库标准语言—SQL

    1. 嵌入式SQL:用于将SQL语言嵌入到其他编程语言中。 2. 不使用游标的SQL语句:用于对关系数据库中的数据进行操作。 3. 使用游标的SQL语句:用于对关系数据库中的数据进行操作。 SQL的数据控制功能包括: 1. 数据...

    SQL语言艺术(pdf格式)

    第2章,发动战争:高效访问数据库 解释如何进行程序设计才能高效访问数据库 第3章,战术部署:建立索引 揭示为何建立索引,如何建立索引 第4章,机动灵活:思考SQL语句 解释如何设计SQL语句 第5章,了如指掌:理解...

    SQL数据库试题及答案

    1. (分值:1.0 分)在MS SQL Server 中,关于数据库的说法正确的是( ) A: 一个数据库可以不包含事务日志文件。 B: 一个数据库可以只包含一个事务日志文件和一个数据库文件。 C: 一个数据库可以包含多个数据库文件...

    达梦数据库sql语句DM7_SQL语言使用手册.pdf

    * 安全性:DM_SQL语言提供了多种安全机制,保护数据库免受非法访问和操作。 * 可扩展性:DM_SQL语言支持用户自定义函数和存储过程,满足不同的应用需求。 保留字与标识符 在DM_SQL语言中,保留字是指具有特殊含义...

    达梦数据库V7_SQL语言使用手册.pdf

    达梦数据库V7_SQL语言使用手册.pdf是达梦数据库V7版本的SQL语言使用手册,旨在帮助用户快速掌握DM_SQL语言的使用方法和技巧。该手册涵盖了DM_SQL语言的基本特点、保留字与标识符、语言功能及语句、数据类型、表达式...

    SQL语言艺术 SQL数据库开发

    《SQL语言艺术》是一本专为SQL数据库开发、软件架构师以及DBA设计的书籍,尤其对于那些专注于数据应用维护的人员来说,它提供了一套全面而深入的SQL学习资源。这本书旨在帮助读者掌握SQL的核心概念,提升在数据库...

    SQL语言艺术 PDF电纸书

    《SQL语言艺术》是一本深度探讨SQL编程技巧与实践的电纸书,由京华志与精华志联合出品。这本书旨在帮助读者提升SQL查询能力,理解数据库管理的核心概念,并掌握在实际开发中如何高效地使用SQL。对于标签中提到的"C#...

    《SQL语言与数据库操作技术大全基于SQL Server实现》

    1. SQL语言概述:SQL(Structured Query Language,结构化查询语言)是一种标准的数据库查询语言,被广泛应用于数据查询、数据更新、数据访问和数据库对象操作等多个方面。 2. 数据库基础:数据库是一种用于存储、...

    数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB

    数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB 数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB 数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB

    关系数据库与SQL语言ppt课件

    关系数据库与SQL语言是IT领域中的基础且至关重要的部分,尤其在数据管理和分析中起着核心作用。本教程涵盖了这两个主题的基本概念、原理以及实际应用。 首先,让我们深入理解关系数据库。关系数据库模型是由埃德加...

    SQL语言艺术

    2 发动战争:高效访问数据库 查询的识别 保持数据库连接稳定 战略优先于战术 先定义问题,再解决问题 保持数据库Schema稳定 直接操作实际数据 用SQL处理集合 动作丰富的SQL语句 充分利用每次数据库访问 接近DBMS核心...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    T-SQL(Transact-SQL)是SQL Server专用的数据库查询语言,它是标准SQL语言的扩展,通过增加流程控制语句、变量、函数等,来支持复杂的数据处理任务。 在本节中,我们重点介绍T-SQL的基础知识,内容将涵盖以下几个...

    达梦数据库 SQL语言使用手册

    达梦数据库 SQL语言使用手册 达梦数据库管理系统的 DM SQL 语言使用手册是学习和使用达梦数据库管理系统的必备文档。本手册详细介绍了 DM SQL 语言的特点、保留字与标识符、功能及语句、数据类型、表达式等知识点,...

    中控考勤软件sqlserver数据库建立办法

    中控考勤软件 SQL Server 数据库建立办法详解 在本文中,我们将详细介绍中控考勤软件 SQL Server 数据库建立的方法,该方法可以方便用户对数据进行处理。 首先,让我们了解什么是 SQL Server 数据库。SQL Server ...

    数据库系统概论:第3章:关系数据库标准语言SQL.ppt

    数据库系统概论:第3章:关系数据库标准语言SQL.ppt

    开源大数据引擎:分布式Greenplum数据库内核分析

    它支持高速数据加载、任意系统数据访问,并提供存储&数据访问语言支持。它的存储引擎是多态的,允许用户根据需要选择适合的存储方式,包括多种压缩技术和多级分区表索引。这些特性共同支持了Greenplum作为一个高度可...

    关系数据库标准语言SQL31505PPT课件.pptx

    关系数据库标准语言SQL31505PPT课件 一、SQL基础知识 SQL(Structured Query Language)是一种关系数据库的标准语言,是一个通用的、功能极强的关系数据库语言。SQL语言的主要用途是对存放在计算机中的数据库进行...

    WinCC数据库SQL访问

    ### WinCC数据库SQL访问:深度解析与操作指南 在工业自动化领域,西门子的WinCC(Windows Control Center)作为一款强大的人机交互界面(HMI)和监控控制(SCADA)软件,其数据库访问能力对于数据管理和分析至关...

Global site tag (gtag.js) - Google Analytics