DBA在平时工作中最需要掌握的技术

DBA在平时工作中最需要掌握的技术,第1张

DBA在平时工作中最需要掌握的技术,第2张

数据库管理员在平时工作中最需要掌握的技术,我想主要是两个方面:
1、数据库的性能优化方面

2、数据库的灾难技术(备份+恢复技术)。

工作多年来,发现这两点最重要,也是老板们最重视的!性能好能给老板节省费用,同时也可以给用户带来更多的“实惠”,因为有效率。这个社会效率就是竞争,时间就是钱!

我们的老板在决定用数据库时,特别是大型数据库。他们往往会考虑到:要是数据库坏了怎么办?要是硬盘坏了怎么办?要是表坏了怎么办?我们就要给出一些详细的方案,甚至是详细的测试报告!就目前,从mysql->fire bird->sql server->oracle->db2 的数据库性能测试我都做过了,感想很多,如各位想交流欢迎一起学习!就目前现在网络上许多测试性能的数据我看过了不少,觉得总缺点什么。因为他们要么没有说明测试环境,要么没有说明测试方式和过程,要么没有说明取测试结果的方式。(我一般是:去掉值和最小值,然后其他的每次测试结果平均得到该次运行的最终结果,我一般都在测试报告中说明)但许多人为了减少测试时间或不想太麻烦就直接测试一次就好了。。以为这就是测试最后结果,其实错了! 第一次运行的有些是需要启动查询服务器有些是需要启动ODBC或BDE,有些用程序测试的要考虑数据库的连接时间和连接方式。。。等等!!
-俞志鹏 qq:3204925

2004年9月6日

以下资料转贴,非我自己写的!

精通数据库管理 (转帖)
一、数据库设计
成功的数据库设计意味着数据库能够存储所有必需的数据,而且其存储方式保证了我们能够快速地保存、提取、编辑、删除数据。有许多因素影响数据库设计是否成功:数据库规范化,索引,运用存储过程和触发器,以及正确地选择一个能够满足需要的DBMS。

数据库规范化(Database Normalization)是一个很重要的问题。数据库规范化可以简单地理解为每一份数据只在数据库中保存一次。这样,在每次更新数据库中的数据时,我们不再需要在多个位置更新同一份数据。数据库规范化有不同的深度,而且我们可以运用多种不同的技术对数据库进行规范化(请参见参考资源中关于数据库规范化的文章)。如果数据库没有规范化,则数据更新必须在多个地方进行,倘若数据库更新实际上只应该在一个地方进行,此时它就给数据库带来了数倍的额外开销。当然,如果你对数据库规范化的了解很深入,你可以降低部分数据的规范化程度,使得数据访问更加方便。

一般地,表里面的记录不按照特定的顺序存储,因此在表中查找数据意味着对表进行完全扫描,这是一个相当耗时的操作。我们可以用索引来避免对表进行完全扫描。数据库的索引保存了特定字段(比如身份证号、姓名等)或字段组合(比如产品类别以及产品序号)键值的有序列表,因此通过索引查找键值要比扫描原始的表快得多。如果你创建了大量的索引,插入记录的时间可能略有延长,但提取记录的速度将有很大的提高。

Access、SQL Server以及Oracle都支持存储过程(Stored Procedure)和触发器(Trigger)。存储过程是数据库预先编译的、可以随时调用执行的查询或者过程。与动态创建和执行的查询相比,存储过程的执行效率更高,因为查询在执行之前必须有一个检查、解释过程,它需要一定的时间。

触发器是一种特殊的函数,它在特定的事件出现时对数据进行预定的操作。数据库(以及访问数据库的应用程序)在插入或者修改记录的时候会频繁地执行触发器。触发器可以验证数据是否合法,可以调用其他存储过程或者程序,也可以进行某些计算。在服务器端运用存储过程和触发器能够提高效率,减少网络传输,使得客户端能够留出更多的时间给其他任务,比如更新屏幕。

最后,请确保数据库能够满足自己的需要。考虑一下系统可能有多少数据量,数据库是一个独立的系统还是用来支持局域网、Internet,确定访问数据库的用户数量。例如,如果系统只有一个用户,而且它永远不需要和其他系统交互,Access是一种理想的选择;但是,如果数据库用来支持企业级访问,则Access不再适用;如果系统需要涉及大量XML数据并要求支持Unicode,有好几种DBMS能够为我们提供这方面的支持。

注意数据库使用情况随着时间的推移而改变,定期地复审数据库的使用目的、用法以及设计是否需要调整,以便优化数据库的性能。

二、数据库配置
每一种数据库管理系统都有各种影响其性能的配置参数,其中部分参数比较重要。下面是在使用Access、SQL Server和Oracle数据库系统时,我们必须熟悉的一些地方。

选择Access 2000数据库时一定要慎重。对于随时准备升级到SQL Server的多用户应用,如果用户数量比较少(5个或者以下),则Microsoft数据引擎(MSDE,Microsoft Data Engine)是一种理想的选择。Microsoft的Jet 4.0数据引擎支持多达255个的用户,但从整体来看,它的速度比较慢。其它需要考虑的因素包括独占访问(速度快)或共享访问(速度慢),记录级加锁(Access 2000独有)或页级加锁(Access 2.0)。如果数据库可能变得非常大,应当注意Jet 4.0和MSDE都有一个2 GB的上限。

SQL Server有一些重要的配置参数(参见表1)。例如它有一个“min memory per query”参数,这是为系统中每一个用户提供的最小内存总量,SQL Server利用这些内存进行排序和连接操作,增加这个数值可能提高查询的速度。把“awe enabled”设置为1并在boot.ini文件中加上“/pae”就可以启用Address Windowing Extensions(即AWE,它是SQL Server 2000的新功能,要求Windows 2000 Advanced Server)。启用AWE之后,我们能够使用多达8 GB的RAM。但是,启用这个功能有一个副作用。启用这个功能之后,SQL Server将在启动时获取大部分可用RAM,而不再是动态分配内存,因此我们必须监视max server memory以及min server memory参数,以免系统变得太慢。

表1,SQL Server的参数设置
参数 默认值 如何调整
max_worker_threads 255 依赖于数据库负载的大小,降低这个数值可能提高性能。
min_server_memory zero (0) SQL Server能够动态分配内存。预先分配一些内存可能会提高响应速度(例如,把这个参数设置成50 MB,然后看看性能是否有所改善)。
max_server_memory SQL Server根据需要动态分配内存。 如果不启用AWE,SQL Server 2000最多能够使用3 GB内存(SQL Server 7最多使用2 GB内存)。
你可以通过设置各种参数来提高数据库性能。max_worker_threads、min_server_memory以及max_server_memory都属于重要的参数。

在Oracle 8i中,我们也可以通过调整一些重要参数来提高数据库性能(参见表2)。这些配置参数都可以在init.ora文件中找到,或者我们也可以用Oracle Enterprise Manager来设置这些参数。我们可以结合运用Oracle Performance Manager、查询命令以及AUTOTRACE功能,辅助优化这些配置参数。AUTOTRACE功能能够显示出系统如何解析SQL语句,并给出它的执行情况统计报告。执行下面这个命令将启动AUTOTRACE功能:


SET AUTOTRACE ON

  如果要查看执行情况统计报告,但不想查看执行计划,我们执行如下命令:

SET AUTOTRACE TRACEONLY

 

表2,设置Oracle配置参数
参数 作用
DB_BLOCK_BUFFERS 设置系统全局区(SGA,System Global Area)的大小。Oracle使用这个缓冲区保存和处理数据。
DB_BLOCK_SIZE 设置内存块的大小。警告:如果改变这个数值,你必须重新构造数据库。在Oracle 8或者更高版本中,它可以设置为32K;在早期版本中,限制是16K。
SHARED_POOL_SIZE Oracle用这个内存处理过程、包、触发器。
SORT_AREA_SIZE 这是用于排序的内存空间大小。
每一个Oracle系统都包含上述配置参数。你可以在init.ora中找到这些参数。正确地设置这些参数将对数据库性能产生积极影响。如果你使用Oracle的时间很长,可能经历版本变换(包括次版本号变换),请注意核对这些参数。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » DBA在平时工作中最需要掌握的技术

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情