虚谷数据库日志文件COMMAND.LOG记录接收到的SQL语句解读(以TPCC为例)

1. 前言介绍

设置虚谷数据库的 reg_command = true,又 tpcc 涉及到 增删改查 合计 31 种类型的语句

DELETE FROM bmsql_new_order     WHERE no_w_id = ? AND no_d_id = ? AND no_o_id = ?
INSERT INTO bmsql_history (    h_c_id, h_c_d_id, h_c_w_id, h_d_id, h_w_id,     h_date, h_amount, h_data) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
INSERT INTO bmsql_new_order (    no_o_id, no_d_id, no_w_id) VALUES (?, ?, ?)
INSERT INTO bmsql_oorder (    o_id, o_d_id, o_w_id, o_c_id, o_entry_d,     o_ol_cnt, o_all_local) VALUES (?, ?, ?, ?, ?, ?, ?)
INSERT INTO bmsql_order_line (    ol_o_id, ol_d_id, ol_w_id, ol_number,     ol_i_id, ol_supply_w_id, ol_quantity,     ol_amount, ol_dist_info) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
SELECT c_data     FROM bmsql_customer     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?
SELECT c_discount, c_last, c_credit, w_tax     FROM bmsql_customer     JOIN bmsql_warehouse ON (w_id = c_w_id)     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?
SELECT cfg_value FROM bmsql_config  WHERE cfg_name = ?
SELECT c_first, c_middle, c_last, c_balance     FROM bmsql_customer     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?
SELECT c_first, c_middle, c_last, c_street_1, c_street_2,        c_city, c_state, c_zip, c_phone, c_since, c_credit,        c_credit_lim, c_discount, c_balance     FROM bmsql_customer     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?     FOR UPDATE
SELECT c_id     FROM bmsql_customer     WHERE c_w_id = ? AND c_d_id = ? AND c_last = ?     ORDER BY c_first
SELECT d_name, d_street_1, d_street_2, d_city,        d_state, d_zip     FROM bmsql_district     WHERE d_w_id = ? AND d_id = ?
SELECT d_tax, d_next_o_id     FROM bmsql_district     WHERE d_w_id = ? AND d_id = ?     FOR UPDATE
SELECT i_price, i_name, i_data     FROM bmsql_item     WHERE i_id = ?
SELECT no_o_id     FROM bmsql_new_order     WHERE no_w_id = ? AND no_d_id = ?     ORDER BY no_o_id ASC
SELECT o_c_id     FROM bmsql_oorder     WHERE o_w_id = ? AND o_d_id = ? AND o_id = ?
SELECT o_id, o_entry_d, o_carrier_id     FROM bmsql_oorder     WHERE o_w_id = ? AND o_d_id = ? AND o_c_id = ?       AND o_id = (          SELECT max(o_id)               FROM bmsql_oorder               WHERE o_w_id = ? AND o_d_id = ? AND o_c_id = ?          )
SELECT ol_i_id, ol_supply_w_id, ol_quantity,        ol_amount, ol_delivery_d     FROM bmsql_order_line     WHERE ol_w_id = ? AND ol_d_id = ? AND ol_o_id = ?     ORDER BY ol_w_id, ol_d_id, ol_o_id, ol_number
select pp(?,?,?,?)
SELECT s_quantity, s_data,        s_dist_01, s_dist_02, s_dist_03, s_dist_04,        s_dist_05, s_dist_06, s_dist_07, s_dist_08,        s_dist_09, s_dist_10     FROM bmsql_stock     WHERE s_w_id = ? AND s_i_id = ?     FOR UPDATE
SELECT sum(ol_amount) AS sum_ol_amount     FROM bmsql_order_line     WHERE ol_w_id = ? AND ol_d_id = ? AND ol_o_id = ?
SELECT w_name, w_street_1, w_street_2, w_city,        w_state, w_zip     FROM bmsql_warehouse     WHERE w_id = ?
UPDATE bmsql_customer     SET c_balance = c_balance + ?,         c_delivery_cnt = c_delivery_cnt + 1     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?
UPDATE bmsql_customer     SET c_balance = c_balance - ?,         c_ytd_payment = c_ytd_payment + ?,         c_payment_cnt = c_payment_cnt + 1,         c_data = ?     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?
UPDATE bmsql_customer     SET c_balance = c_balance - ?,         c_ytd_payment = c_ytd_payment + ?,         c_payment_cnt = c_payment_cnt + 1     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?
UPDATE bmsql_district     SET d_next_o_id = d_next_o_id + 1     WHERE d_w_id = ? AND d_id = ?
UPDATE bmsql_district     SET d_ytd = d_ytd + ?     WHERE d_w_id = ? AND d_id = ?
UPDATE bmsql_oorder     SET o_carrier_id = ?     WHERE o_w_id = ? AND o_d_id = ? AND o_id = ?
UPDATE bmsql_order_line     SET ol_delivery_d = ?     WHERE ol_w_id = ? AND ol_d_id = ? AND ol_o_id = ?
UPDATE bmsql_stock     SET s_quantity = ?, s_ytd = s_ytd + ?,         s_order_cnt = s_order_cnt + 1,         s_remote_cnt = s_remote_cnt + ?     WHERE s_w_id = ? AND s_i_id = ?
UPDATE bmsql_warehouse     SET w_ytd = w_ytd + ?     WHERE w_id = ?

统计,以 五分钟 运行时常 TPCC为例。
//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
统计如下:
在这里插入图片描述

2.日志解读

[root@xugu210 XGLOG]# grep 'st12f40c2513' COMMAND* | more 
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:12:57     Prepare st12f40c2513 as SELECT c_data     FROM bmsql_customer     WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:12:57     ? st12f40c2513 as cursor cur12f40c25236 return 15        {PN=3,GN=1 <1,I4,41><2,I4,6><3,I4,912>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:12:57     ? st12f40c2513 as cursor cur12f40c25351 return 15        {PN=3,GN=1 <1,I4,70><2,I4,1><3,I4,1569>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:12:58     ? st12f40c2513 as cursor cur12f40c251129 return 15       {PN=3,GN=1 <1,I4,41><2,I4,4><3,I4,1961>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:12:58     ? st12f40c2513 as cursor cur12f40c251257 return 15       {PN=3,GN=1 <1,I4,41><2,I4,3><3,I4,840>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:12:58     ? st12f40c2513 as cursor cur12f40c251290 return 15       {PN=3,GN=1 <1,I4,41><2,I4,7><3,I4,1630>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:12:59     ? st12f40c2513 as cursor cur12f40c251381 return 15       {PN=3,GN=1 <1,I4,41><2,I4,5><3,I4,19>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:00     ? st12f40c2513 as cursor cur12f40c252608 return 15       {PN=3,GN=1 <1,I4,41><2,I4,10><3,I4,2935>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:00     ? st12f40c2513 as cursor cur12f40c252813 return 15       {PN=3,GN=1 <1,I4,41><2,I4,9><3,I4,603>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:01     ? st12f40c2513 as cursor cur12f40c253882 return 15       {PN=3,GN=1 <1,I4,41><2,I4,5><3,I4,796>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:01     ? st12f40c2513 as cursor cur12f40c254218 return 15       {PN=3,GN=1 <1,I4,41><2,I4,5><3,I4,23>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:02     ? st12f40c2513 as cursor cur12f40c254294 return 15       {PN=3,GN=1 <1,I4,41><2,I4,5><3,I4,2591>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:02     ? st12f40c2513 as cursor cur12f40c254460 return 15       {PN=3,GN=1 <1,I4,41><2,I4,1><3,I4,757>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:02     ? st12f40c2513 as cursor cur12f40c254769 return 15       {PN=3,GN=1 <1,I4,41><2,I4,3><3,I4,865>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:02     ? st12f40c2513 as cursor cur12f40c255015 return 15       {PN=3,GN=1 <1,I4,41><2,I4,4><3,I4,92>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:03     ? st12f40c2513 as cursor cur12f40c255294 return 15       {PN=3,GN=1 <1,I4,486><2,I4,4><3,I4,87>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:03     ? st12f40c2513 as cursor cur12f40c255303 return 15       {PN=3,GN=1 <1,I4,41><2,I4,5><3,I4,739>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:03     ? st12f40c2513 as cursor cur12f40c256263 return 15       {PN=3,GN=1 <1,I4,41><2,I4,2><3,I4,580>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:05     ? st12f40c2513 as cursor cur12f40c257740 return 15       {PN=3,GN=1 <1,I4,41><2,I4,3><3,I4,1934>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:05     ? st12f40c2513 as cursor cur12f40c257768 return 15       {PN=3,GN=1 <1,I4,41><2,I4,6><3,I4,2945>}
COMMAND_23_08_07_10_13_54.LOG:1 2       SYSDBA  6       127.0.0.1       2023-08-07 10:13:05     ? st12f40c2513 as cursor cur12f40c258313 return 15       {PN=3,GN=1 <1,I4,41><2,I4,8><3,I4,727>}

类型 条数 百分比
DELETE 83930 2.3603%
INSERT 359126 10.0994%
SELECT 2137761 60.1186%
UPDATE 975087 27.4216%
表维度统计

bmsql_config            DELETE          0               INSERT          0               SELECT          3               UPDATE          0
bmsql_customer          DELETE          0               INSERT          0               SELECT          75852           UPDATE          0
bmsql_district          DELETE          0               INSERT          0               SELECT          780523          UPDATE          718715
bmsql_history           DELETE          0               INSERT          88512           SELECT          0               UPDATE          0
bmsql_item              DELETE          0               INSERT          0               SELECT          932625          UPDATE          0
bmsql_new_order         DELETE          83930           INSERT          93342           SELECT          83930           UPDATE          0
bmsql_oorder            DELETE          0               INSERT          177272          SELECT          83930           UPDATE          83930
bmsql_order_line                DELETE          0               INSERT          0               SELECT          83930           UPDATE          83930
bmsql_stock             DELETE          0               INSERT          0               SELECT          0               UPDATE          0
bmsql_warehouse         DELETE          0               INSERT          0               SELECT          88512           UPDATE          88512

其中:

  1. st12f40c2513表示 prepared 的key,同时作为游标 背后的对应SQL语句;
  2. 1 2 SYSDBA 6 127.0.0.1 2023-08-07 10:12:57 ? st12f40c2513 as cursor cur12f40c25236 return 15 {PN=3,GN=1 }
    其中:
    字段说明
    序号 字段名 类型 说明 V11 V12
    0 NODEID INTEGER 节点ID X √
    1 DB_ID VARCHAR 数据库ID X √
    2 USER INTEGER 用户名 X √
    3 SESSION_ID VARCHAR 会话ID X √
    4 CLIENT_IP DATETIME 客户端IP X √
    5 EX_TIME VARCHAR 执行时间 X √
    6 SQL_STR VARCHAR 执行SQL X √
    7 SQL_PARAS VARCHAR – X √

其中:
st12f40c2513 as cursor cur12f40c25236 return 15 {PN=3,GN=1 }

默认用游标实现。
return 15 表示默认返回15条数据;
PN=3 表示有三个参数数;
GN=1 ,表示group number =1 ,即 参数组只有一个;
表示第一个参数,I4表示数据类型,参数值为 41;
表示第二个参数,I4表示数据类型。,参数值为 6;
表示第三个参数,I4表示数据类型,参数值为 912;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值