1、性能调整包括发现和消除瓶颈,以及添加适当的硬件,如内存或硬盘。
基准是一些任务的标准化集合,他们有助于刻画数据库系统的性能特征。
测试要求生成数据库状态和测试输入,并验证输出是否匹配预期的输出。
2、批量更新:允许使用单次数据库通信来执行多个插入操作。
嵌套子查询:如果一个子查询没有被去除相关性,它会被重复的执行,这可能导致大量的随机I/O。
批量导入:从文件读取数据,以一种非常高效的方式执行完整性约束检查以及索引维护。批量导入/导出功能也支持数据库特定的二进制格式以及XML格式。
3、在一个性能均衡的系统中,任何单个的部件都不会称为瓶颈。一个事务向数据库系统请求各种服务,从进入一个服务器进程开始,在执行过程中需要读磁盘,需要CPU周期,以及并发控制所需要的锁。数据库系统中请求的到达从不是均匀的,而总是随机的。
4、可调参数:
1)最低级别是在硬件层上。这一级上调整选项包括:如果磁盘I/O是瓶颈,则增加磁盘或使用RAID系统;如果磁盘缓冲容量是瓶颈,则增加更多内存;如果CPU使用是瓶颈,则改用更快的处理器。
2)第二个级别由数据库系统参数组成,比如缓冲区大小和检查点间隔。
3)第三级别是最高级别,它包括模式和事务。
5、硬件调整:
调整事务处理系统的一个重要因素就是确保磁盘子系统能够处理I/O操作锁需要的速率。限制因素并不是磁盘容量,而是能够随机进行数据访问的速度。把经常使用的数据放在内存中以减少磁盘I/O次数而增加的额外的内存开销是值得的。
5分钟规则:如果一页在5分钟里被使用的次数多于一次,它就应该被存储在内存中。
对于顺序访问的数据,每秒可能会读取非常多的页。
6、索引调整:如果经常使用范围查询,那么B树索引比散列索引更合适。
7、在立即视图维护的情况下,如果一个事务的更新操作影响到物化视图,那么这个物化视图必须作为该事务的一部分进行更新,因此事务的运行会变慢。在延迟视图维护的情况下,物化视图会在以后更新。在物化视图更新前,物化视图可能会与数据库关系不一致。
8、应用系统测试:
程序测试包括设计一个测试集,即一个测试用例的集合。测试不是一次性的过程。回归测试包括把程序运行在测试集中的每个测试用例上,并检查程序是否产生预期的测试输出。
一个测试用例由两部分组成:数据库状态,以及一个应用程序特定接口的输入。
SQL查询可能有难以捕获的细微错误。在一个预期查询和该查询的突变上产生不同输出的测试用例,称为消灭突变。一个测试集应该有能消灭(大多数)经常发生的突变的测试用例。
如果一个测试用例执行对数据库的更新,为了检查它是否正确执行,必须验证数据库的内容与预期内容相匹配。因此,预期的输出不仅包括显示在用户屏幕上的数据,而且包括数据库状态(的更新)。
由于数据库状态可能相当大,多个测试用例可能共享同一个数据库状态。
对于性能测试,测试数据库必须和真实数据库一样大。
9、逆向过程包括检查遗产系统代码,提出所需数据模型中的设计模式。还要检查代码找出实现的程序和过程,以得到系统的高层模型。
10、ODBC允许一个客户端同时链接到多个数据源,并在这些数据源之间进行切换,但各个数据源上的事务是独立的,ODBC不支持两阶段提交。