sql plan monitor occupy position

This commit is contained in:
obdev
2024-02-27 08:51:00 +00:00
committed by ob-robot
parent 2011ccb345
commit 7339c60cb9
7 changed files with 291 additions and 3 deletions

View File

@ -827,6 +827,22 @@ int ObVirtualSqlPlanMonitor::convert_node_to_row(ObMonitorNode &node, ObNewRow *
cells[cell_idx].set_int(int_value); cells[cell_idx].set_int(int_value);
break; break;
} }
case WORKAREA_MEM: {
cells[cell_idx].set_null();
break;
}
case WORKAREA_MAX_MEM: {
cells[cell_idx].set_null();
break;
}
case WORKAREA_TEMPSEG: {
cells[cell_idx].set_null();
break;
}
case WORKAREA_MAX_TEMPSEG: {
cells[cell_idx].set_null();
break;
}
default: { default: {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
SERVER_LOG(WARN, "invalid column id", K(cell_idx), SERVER_LOG(WARN, "invalid column id", K(cell_idx),

View File

@ -105,7 +105,11 @@ private:
OUTPUT_BATCHES, // for batch OUTPUT_BATCHES, // for batch
SKIPPED_ROWS_COUNT, // for batch SKIPPED_ROWS_COUNT, // for batch
DB_TIME, DB_TIME,
USER_IO_WAIT_TIME USER_IO_WAIT_TIME,
WORKAREA_MEM,
WORKAREA_MAX_MEM,
WORKAREA_TEMPSEG,
WORKAREA_MAX_TEMPSEG
}; };
DISALLOW_COPY_AND_ASSIGN(ObVirtualSqlPlanMonitor); DISALLOW_COPY_AND_ASSIGN(ObVirtualSqlPlanMonitor);

View File

@ -5861,6 +5861,66 @@ int ObInnerTableSchema::all_virtual_sql_plan_monitor_schema(ObTableSchema &table
false, //is_nullable false, //is_nullable
false); //is_autoincrement false); //is_autoincrement
} }
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_MEM", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_MAX_MEM", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_TEMPSEG", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_MAX_TEMPSEG", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) { if (OB_SUCC(ret)) {
table_schema.get_part_option().set_part_num(1); table_schema.get_part_option().set_part_num(1);
table_schema.set_part_level(PARTITION_LEVEL_ONE); table_schema.set_part_level(PARTITION_LEVEL_ONE);
@ -6594,7 +6654,75 @@ int ObInnerTableSchema::all_virtual_sql_plan_monitor_all_virtual_sql_plan_monito
true);//is_storing_column true);//is_storing_column
} }
table_schema.set_max_used_column_id(column_id + 39); if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_MEM", //column_name
column_id + 40, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_MAX_MEM", //column_name
column_id + 41, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_TEMPSEG", //column_name
column_id + 42, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_MAX_TEMPSEG", //column_name
column_id + 43, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
table_schema.set_max_used_column_id(column_id + 43);
return ret; return ret;
} }

View File

@ -643,6 +643,66 @@ int ObInnerTableSchema::all_virtual_sql_plan_monitor_ora_schema(ObTableSchema &t
false, //is_nullable false, //is_nullable
false); //is_autoincrement false); //is_autoincrement
} }
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_MEM", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_MAX_MEM", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_TEMPSEG", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("WORKAREA_MAX_TEMPSEG", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) { if (OB_SUCC(ret)) {
table_schema.get_part_option().set_part_num(1); table_schema.get_part_option().set_part_num(1);
table_schema.set_part_level(PARTITION_LEVEL_ONE); table_schema.set_part_level(PARTITION_LEVEL_ONE);
@ -1372,7 +1432,75 @@ int ObInnerTableSchema::all_virtual_sql_plan_monitor_ora_all_virtual_sql_plan_mo
true);//is_storing_column true);//is_storing_column
} }
table_schema.set_max_used_column_id(column_id + 39); if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_MEM", //column_name
column_id + 40, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_MAX_MEM", //column_name
column_id + 41, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_TEMPSEG", //column_name
column_id + 42, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_WITH_COLUMN_FLAGS("WORKAREA_MAX_TEMPSEG", //column_name
column_id + 43, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false,//is_nullable
false,//is_autoincrement
false,//is_hidden
true);//is_storing_column
}
table_schema.set_max_used_column_id(column_id + 43);
return ret; return ret;
} }

View File

@ -10952,6 +10952,10 @@ def_table_schema(
('SKIPPED_ROWS_COUNT', 'int'), ('SKIPPED_ROWS_COUNT', 'int'),
('DB_TIME', 'int'), ('DB_TIME', 'int'),
('USER_IO_WAIT_TIME', 'int'), ('USER_IO_WAIT_TIME', 'int'),
('WORKAREA_MEM', 'int'),
('WORKAREA_MAX_MEM', 'int'),
('WORKAREA_TEMPSEG', 'int'),
('WORKAREA_MAX_TEMPSEG', 'int'),
], ],
partition_columns = ['SVR_IP', 'SVR_PORT'], partition_columns = ['SVR_IP', 'SVR_PORT'],
vtable_route_policy = 'distributed', vtable_route_policy = 'distributed',

View File

@ -2042,6 +2042,10 @@ OUTPUT_BATCHES bigint(20) NO NULL
SKIPPED_ROWS_COUNT bigint(20) NO NULL SKIPPED_ROWS_COUNT bigint(20) NO NULL
DB_TIME bigint(20) NO NULL DB_TIME bigint(20) NO NULL
USER_IO_WAIT_TIME bigint(20) NO NULL USER_IO_WAIT_TIME bigint(20) NO NULL
WORKAREA_MEM bigint(20) NO NULL
WORKAREA_MAX_MEM bigint(20) NO NULL
WORKAREA_TEMPSEG bigint(20) NO NULL
WORKAREA_MAX_TEMPSEG bigint(20) NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_sql_plan_monitor; select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_sql_plan_monitor;
IF(count(*) >= 0, 1, 0) IF(count(*) >= 0, 1, 0)
1 1

View File

@ -4635,6 +4635,10 @@ OUTPUT_BATCHES bigint(20) NO NULL
SKIPPED_ROWS_COUNT bigint(20) NO NULL SKIPPED_ROWS_COUNT bigint(20) NO NULL
DB_TIME bigint(20) NO NULL DB_TIME bigint(20) NO NULL
USER_IO_WAIT_TIME bigint(20) NO NULL USER_IO_WAIT_TIME bigint(20) NO NULL
WORKAREA_MEM bigint(20) NO NULL
WORKAREA_MAX_MEM bigint(20) NO NULL
WORKAREA_TEMPSEG bigint(20) NO NULL
WORKAREA_MAX_TEMPSEG bigint(20) NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_sql_plan_monitor; select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_sql_plan_monitor;
IF(count(*) >= 0, 1, 0) IF(count(*) >= 0, 1, 0)
1 1