Trafodion中有一个功能叫OSIM,是一个用来收集问题现场并重现现场的有利工具。
假设有一种场景,我的一条SQL执行很慢,想找人帮忙一起定位问题,但正好某个时间点又找不到一起定位问题的人,这时候我希望把这个出问题的现场保存起来,等别人有时间了只需要根据我保存的文件恢复到当时的场景,便可以很容易的定位问题了。
这里分为两个步骤,一个是保存现场,另一个就是恢复现场,具体步骤分别如下,
1.保存现场
通过Sqlci,执行以下步骤
>> control osim capture location 'osim';
>> prepare xx from <query-text>
>> control osim capture stop;
执行完成后,会在当前目录下生成一个osim文件夹,里面包含上述SQL语句相关的信息,如DDL、统计信息、直方图信息等,这些信息可供用来恢复SQL执行的现场。
2.恢复现场
通过Sqlci,执行以下步骤
>> control osim load from 'osim';
>> control osim simulate start;
>> prepare xx from <query-text>
>> control osim unload 'osim' ;
执行上述步骤前,需要把1中的osim文件夹复制到当前目录,用来恢复现场。