您可以分析 onstat -g spi 命令的输出来标识森林树索引可缓解的性能瓶颈。
要检测根节点争用并确定是否需要森林树索引:
onstat -g spi 命令的输出显示具有等待的自旋锁定,当多个线程并发在某个索引中读取或写入且特定线程在第一次尝试获取锁定失败时,会发生这种情况。
Spin locks with waits: Num Waits Num Loops Avg Loop/Wait Name 332480 1568908 4.72 fast mutex, 3:bf[1234] 0x2d00008 0x1028a0d8000 39722 498769 12.56 mutex lock, name = log 20761 101831 4.90 fast mutex, 7:bf[62] 0x1300003 0x109da128000 14818 77680 5.24 mutex lock, name = MGM mutex 6523 34350 5.27 fast mutex, 3:bf[362] 0x20008e 0x10289a08000
例如,运行此查询:
echo "select tabname, hex(partnum) from systabnames where hex(partnum) = '0x02d00008'" | dbaccess sysmaster - tabname daily_market_idx (expression) 0x02d00008 $ echo 'select tabname, hex(partnum) from systabnames' where hex(partnum) = 0x01300003 | dbaccess sysmaster - tabname trade_history_idx (expression) 0x01300003 $ echo 'select tabname, hex(partnum) from systabnames' where hex(partnum) = 0x0020008E | dbaccess sysmaster - tabname trade_request_idx2 (expression) 0x0020008E