前言
金仓数据库KingbaseES是由中电科金仓(北京)科技股份有限公司(简称“电科金仓”)研发的面向全行业、全客户关键应用的企业级大型通用融合数据库产品,适用于事务处理类应用、数据分析类应用、海量时序数据采集检索类应用、要求苛刻的互联网应用等场景;可用作管理信息系统、业务及生产系统、决策支持系统、多维数据分析系统、运行日志管理系统、全文检索系统、地理信息系统、时序数据处理相关系统的承载数据库。金仓数据库广泛服务于能源、金融、电信、交通、医疗、政务等多个重点行业和关键领域,累计装机部署超过100万套,连续多年在国产数据库关键应用领域销售套数占比第一。
随着金仓数据库在各个行业的广泛使用,特别是在一些行业的核心应用,数据库变得日益庞大复杂,数据量也显著增加,数据库性能表现的重要性也越发凸显,直接影响程序的使用体验。本书是关于KingbaseES数据库性能优化兼具技术性与指导性的参考书,从数据库系统的运行环境、数据库实例、SQL语句、数据库对象的物理设计等多个层面讲述KingbaseES的性能优化原理与策略。本书适合作为KingbaseES数据库管理员、数据库应用开发人员以及数据库技术爱好者的参考书,也可以作为高等院校计算机大类高年级本科生或研究生学习数据库管理系统原理、理解数据库性能优化理论与实践的教材。
本书共10章,章节内容由浅入深,层次清晰,通俗易懂。第1章从宏观层面介绍数据库性能优化的基本概念、系统性能的规划、数据库性能问题的诊断步骤、数据库性能基准测试以及本书的实验环境;第2章介绍KingbaseES的体系架构、并发控制策略以及日志系统的运行机制,为数据库性能优化奠定理论基础;第3章介绍从操作系统层面初步定位数据库系统的性能瓶颈;第4章介绍KingbaseES数据库的日志分析工具、动态性能视图以及性能诊断工具KWR、KDDM、KSH等,帮助用户诊断系统存在的性能问题并给出建议;第5章介绍KingbaseES数据库实例优化策略和根据数据库时间模型定位系统的性能瓶颈;第6章介绍SQL语句的执行原理;第7章介绍KingbaseES的各种SQL执行计划,以帮助用户理解KingbaseES处理SQL语句的具体步骤,找出最耗时的执行节点;第8章介绍SQL语句的优化方法,例如调整系统参数、使用Hint、索引、并行等多种可以采用的优化手段;第9章介绍如何编写一个逻辑正确并且运行高效的SQL语句;第10章介绍数据库对象的物理设计优化方法,如分区、物化视图等。本书对于系统实例和SQL语句的优化给出了大量实用的例子。
本书具有以下特点。
(1) 兼具技术性和指导性,既包括KingbaseES的体系架构和运行机制,又有实战的操作步骤。
(2) 在操作系统、数据库实例、SQL语句和数据库对象的物理设计多个层面全面介绍KingbaseES的性能诊断和调优方法。
(3) 以经典的TPCC和TPCH性能基准测试为样例,覆盖OLTP和OLAP场景的性能优化。
(4) 提供配套的用例和SQL脚本。
本书大纲由冯玉、杜胜、尹强、杨尚和王鸿翔共同拟制,第1章由冯玉、尹强共同执笔,第2、6~10章由冯玉执笔,第3~5章由尹强执笔,最后由冯玉统稿。杨尚和王鸿翔仔细阅读了本书稿,并提出了宝贵的修改意见。电科金仓的林宇提供了大量在实际生产场景中SQL优化的用例,王胜利、徐登峰、范国腾、毕东贞、窦培、靳国军等提供了金仓数据库的相关资料,并解答了本书撰写过程中遇到的很多问题,在此表示由衷的感谢。
在编写过程中,还参阅了电科金仓、甲骨文(Oracle)公司、PostgreSQL等相关的数据库文档、联机帮助和教学培训成果,也吸取了国内外相关参考书的精髓,对这些作者的贡献表示由衷的感谢。本书在出版过程中,得到中国人民大学王珊教授的支持和帮助,还得到清华大学出版社张玥编辑的大力支持,在此表示诚挚的感谢。
由于作者水平有限,书中难免有不妥和疏漏之处,恳请各位专家、同仁和读者不吝赐教和批评指正,并与作者讨论。
作者2025年5月于北京
