用IBExpert优化Firebird/Interbase技巧集

2022-06-29 00:00:00 数据库 对象 你可以 脚本 只需
IBExpert 如何改善Firebird/Interbase数据库 的解决方案
1.如何找到没使用索引的procedures, 
trigger和views
2.如何找到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%

相关文章