用IBExpert优化Firebird/Interbase技巧集1
译注:1.IBExpert的大多数功能并没用过,所以今天收到了IBExpert team的邮件时,感觉很多功能很实用,就花了点时间翻译了一下。2.以下大多数功能均需企业版,个人版缺少部分功能,用morgan提供的处理版即可( http://www.firebird.net.cn/forum_view.asp?forum_id=7&view_id=961&page=1 这个处理版的下载量竟然有3xx次,很高兴有不少人在firebird/interbase)。3.部分快捷键可能没设置比如F9,单击相关的功能按钮即可,有些也可以自己在相关功能窗口的系统菜单的"Localize/Change Shortcuts"功能中设置即可。
IBExpert 如何改善Firebird/Interbase数据库 的解决方案1.如何找到没使用索引的procedures, trigger和views2.如何找到procedures和triggers中典型的类型转换问题3.如何了解你的数据库服务器的垃圾回收功能是否工作4.如何改变一个数据库中所有表的字符集5.如何比较不同数据库元信息的异同并得到一个差异脚本6.如何对存储过程及触发器进行版本管理7.如何比较当前数据库与另一个数据库的对象8.如何自动创建insert、update、delete或其它操作的sql语句9.如何找到所有对当前对象有依赖关系的对象10.如何比较不同硬件环境和数据库服务器的处理速度
下面是IBExpert Team的解决方案1.如何找到没使用索引的procedures, trigger和views 只需选择菜单"tools"下的"SP/Trigger/View Analyzer",然后按F9(Start Analyzing)。就会分析所有对象并以红色标记没使用索引的部分。只需双击对应行就可以修改这些对象。一个设计良好的数据库分析结果中应该没有红色标记的行。
2.如何找到procedures和triggers中典型的类型转换问题一个典型的问题就是经常较难发现一个varchar(20)字段复制到一个varchar(10)变量中。在大多数情况下,并没有什么问题,但当字段数据超过10个字符后,就会得到一个运行错误。这种问题经常发生在客户在使用数据库过程中。要找到这些错误,只需选择菜单"tools"下的"SP/Trigger/View Analyzer",然后按F9(Start Analyzing)。
3.如何了解你的数据库服务器的垃圾回收功能是否工作打开数据库,选择菜单"Services/Database Statistics",按F9(Retrieve Statistics)。在Summary页,你可以看到Versions栏,其中有些与版本相关的子栏目,如Version len(version length)和Max versions。如果垃圾回收功能工作正常的话,这两个值应该很低。如果这两个值比较高,说明垃圾回收功能工作不正常,这可能是由很多因素造成的,一般来说,可能是由于你的程序中没有正确使用事务。
4.如何改变一个数据库中所有表的字符集打开菜单"Tools/Extract Metadata",你可以创建一个脚本包括了创建数据库和插入对应数据(包括blob数据)的语句。你可以在脚本中用查找替换功能更改字符集名,然后将原始数据库文件更名(即备份老数据库避免覆盖),再重新运行脚本创建新的数据库。
5.如何比较不同数据库元信息的异同并得到一个差异脚本打开菜单"Tools/Database comparer"。这个功能将创建一个脚本,它包含了可以用来同步数据库结构的所有差异信息。
6.如何对存储过程及触发器进行版本管理在IBExpert的存储过程或触发器的编辑器中,只需单击"Version History"页,然后确定在数据库中增加一些辅助对象。这样,这些对象的所有变化就会自动保存下来,还可以在窗口中比较这些变化。
7.如何比较当前数据库与另一个数据库的对象在IBExpert注册一个数据时,只需设置"Comparative DB"(译注:一般在左边功能树的最下面)为你要参考比较的数据库即可。这样,在大多数对象编辑器中,你可以单击比较页来看当前数据库和参考数据库相关信息的异同。
8.如何自动创建insert、update、delete或其它操作的sql语句只需打开SQL编辑器,将表或任何对象从数据库浏览器中拖放进编辑器即可。有一个向导将把产生对象可能的几种sql语句显示出来。
9.如何找到所有对当前对象有依赖关系的对象只需打开菜单"Tools/Dependencies viewer",将对象拖放到这个窗口中。它将以树状结构显示所有与这个对象有依赖关系的对象的依赖结构。
10.如何比较不同硬件环境和数据库服务器的处理速度我们建议使用IBExpert Demo Database脚本(一般在\program files\HK-Software\IBExpertDemoDB\db1.sql)。它将创建一个简单的购物数据库。当运行这个过程,并用10000作为参数时,它将创建10000个顾客和10000个商品等。这样全部加在一起有750000个数据库操作,数据库大小为25MB。这将运行10到20秒。想创建更大的数据库,只需用更大的参数即可,比如initall(100000)将创建约250MB的数据库,这个过程将大约有7.5M的数据库操作。如果用这个脚本测试Interbase,请在运行前将脚本中的"select first 1 "语句替换成 "select ... rows 1"。在测试中,将看到Firebird2比Firebird1.5要快75%。
你想了解更多优化数据库的方法么?下一封邮件中我们就展示给你更多的内容。
IBExpert team.
(转)