## Module 4: Use ADMIN PAUSE DDL to avoid the impact of DDL jobs on the workload

### Step 1. Connect to the TiUP control machine with four terminals

+ Open four SSH connections to your lab virtual machine, by clicking:
  + [Terminal 1](ssh://monitor1-ssh#1)
  + [Terminal 2](ssh://monitor1-ssh#2)
  + [Terminal 3](ssh://monitor1-ssh#3)
  + [Terminal 4](ssh://monitor1-ssh#4)

+ You will now have four active terminal sessions.

### Step 2. Start the workload using `tiup bench`

+ On [Terminal 1](ssh://monitor1-ssh#1),launch the workload with `tiup bench` with 20 concurrent sessions accessing data from 4 WAREHOUSES for a duration of 15 minutes. For more information on how to conduct TPC-C testing on TiDB, please refer to: <https://docs.pingcap.com/tidb/stable/benchmark-tidb-using-tpcc/>

> [!TIP]
> Please note that after starting `Step 2`, it is important to complete the content before `Step 4` within 15 minutes; otherwise, accurate results may not be obtained.

  ```bash
  export PATH="$PATH:/home/ec2-user/.tiup/bin"
  tiup bench tpcc -H ${HOST_DB1_PRIVATE_IP},${HOST_DB2_PRIVATE_IP} -P 4000 -D tpcc --warehouses 4 --threads 20 --time 15m run
  ```

  ```output
  [Current] DELIVERY - Takes(s): 9.8, Count: 213, TPM: 1306.6, Sum(ms): 18520.5, Avg(ms): 87.0, 50th(ms): 79.7, 90th(ms): 134.2, 95th(ms): 151.0, 99th(ms): 243.3, 99.9th(ms): 302.0, Max(ms): 302.0
  [Current] NEW_ORDER - Takes(s): 9.8, Count: 2256, TPM: 13760.7, Sum(ms): 79851.6, Avg(ms): 35.4, 50th(ms): 29.4, 90th(ms): 62.9, 95th(ms): 79.7, 99th(ms): 109.1, 99.9th(ms): 151.0, Max(ms): 167.8
  [Current] ORDER_STATUS - Takes(s): 9.8, Count: 188, TPM: 1148.2, Sum(ms): 1647.7, Avg(ms): 8.8, 50th(ms): 7.9, 90th(ms): 13.6, 95th(ms): 16.3, 99th(ms): 24.1, 99.9th(ms): 24.1, Max(ms): 24.1
  [Current] PAYMENT - Takes(s): 9.9, Count: 2080, TPM: 12643.3, Sum(ms): 90919.6, Avg(ms): 43.7, 50th(ms): 37.7, 90th(ms): 88.1, 95th(ms): 104.9, 99th(ms): 142.6, 99.9th(ms): 167.8, Max(ms): 184.5
  [Current] STOCK_LEVEL - Takes(s): 9.7, Count: 183, TPM: 1130.6, Sum(ms): 4273.2, Avg(ms): 23.3, 50th(ms): 14.2, 90th(ms): 46.1, 95th(ms): 75.5, 99th(ms): 159.4, 99.9th(ms): 176.2, Max(ms): 176.2
  [Current] DELIVERY - Takes(s): 10.0, Count: 234, TPM: 1408.4, Sum(ms): 20728.7, Avg(ms): 88.6, 50th(ms): 71.3, 90th(ms): 142.6, 95th(ms): 167.8, 99th(ms): 285.2, 99.9th(ms): 335.5, Max(ms): 335.5
  ...
  ```

+ Log in to the [Grafana Dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000). Participants are encouraged to keep the monitoring pages open from this step and set the monitoring time range to the last 5 or 15 minutes, while changing the refresh rate to 5 seconds.

  ![70%](https://lab-static.pingcap.com/images/2025/7/26/9c787410ab425dd7eb7e7297cc46711ec63ccc22.png)

+ On [Grafana Dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000), navigate to `Home`, then select `tidb-demo`, and subsequently choose `tidb-demo-TiDB-Summary`. Open the `Query Summary` tab, where you will find the `Duration` panel displaying the duration between the time that the client's network request is sent to TiDB and the time that the request is returned to the client after TiDB has executed it, and the `Command Per Second` panel showing the number of commands processed by TiDB per second, which is classified according to the success or failure of command execution results. We can learn whether the current processing capacity of the database is affected by DDL tasks through the `Duration` panel and the `Command Per Second` panel.

  ![70%](https://lab-static.pingcap.com/images/2025/7/27/abc6e85f974919917c1bc040b7548820fe9d6cb9.png)

+ After waiting for 2 minutes, we can observe that the database's load processing time has stabilized, allowing us to proceed to the next step.

  ![70%](https://lab-static.pingcap.com/images/2025/7/27/6f4ffcdd8f9d17ed4a74708ca496a6c64bb541d8.png)

### Step 3. Add index to table and modify column attributes

+ On [Terminal 2](ssh://monitor1-ssh#2), connect to TiDB server instance.

  ```bash
  mysql -h ${HOST_TIPROXY1_PRIVATE_IP} --port 6000 -u root
  ```

  ```output
  mysql> 
  ```

+ Add an index to the table `test.ddl_test3` and modify the attributes of the `content` column. Please note: Do not wait for this command to finish.

  ```sql
  ALTER TABLE test.ddl_test3 ADD INDEX idx_content_updated_at(content, updated_at);ALTER TABLE test.ddl_test3 MODIFY `content` VARCHAR(32) DEFAULT '0000000000' COMMENT 'content';
  ```

+ On [Terminal 3](ssh://monitor1-ssh#3), connect to TiDB server instance.

  ```bash
  mysql -h ${HOST_TIPROXY1_PRIVATE_IP} --port 6000 -u root
  ```

  ```output
  mysql> 
  ```

+ Add an index to the table `test.ddl_test4` and modify the attributes of the `content` column. Please note: Do not wait for this command to finish. In this practice, modifying the attributes of the `content` column for the tables `test.ddl_test3` and `test.ddl_test4` will take approximately 4 minutes. Therefore, please initiate `Step 4` within 4 minutes to ensure accurate results.

  ```sql
  ALTER TABLE test.ddl_test4 ADD INDEX idx_content_updated_at(content, updated_at);ALTER TABLE test.ddl_test4 MODIFY `content` VARCHAR(32) DEFAULT '0000000000' COMMENT 'content';
  ```

+ Return to [Grafana Dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000), in the `Query Summary` tab of `tidb-demo-TiDB-Summary`, you can see that the `Duration` panel starts to raise and the `Command Per Second` panel starts to decline. These indicate that the database's workload may be impacted by DDL tasks, which could lead to a decline in user experience.

  ![70%](https://lab-static.pingcap.com/images/2025/7/27/f9100e0672b94b8336fc969ebb1c28bbd639cc1f.png)

### Step 4. Pause DDL jobs using `ADMIN PAUSE DDL` command

+ On [Terminal 4](ssh://monitor1-ssh#4), connect to TiDB server instance.

  ```bash
  mysql -h ${HOST_TIPROXY1_PRIVATE_IP} --port 6000 -u root
  ```

  ```output
  mysql> 
  ```

+ Use the command `ADMIN SHOW DDL JOBS` to find the `JOB_ID` of the DDL jobs executed just now. In the example, the `JOB_ID` are `175` and `176`, and `STATE` are `running` and `queueing`, indicating that the DDL jobs are currently in progress. Please note that your output may differ from the example provided.

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE         | COMMENTS    |
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  |    175 | test    | ddl_test3  | modify column | write reorganization |         2 |      114 |         0 | 2025-07-27 04:44:56.336000 | 2025-07-27 04:44:56.386000 | NULL                       | running       |             |
  |    176 | test    | ddl_test4  | add index     | none                 |         2 |      116 |         0 | 2025-07-27 04:45:08.285000 | NULL                       | NULL                       | queueing      |             |
  |    174 | test    | ddl_test3  | add index     | public               |         2 |      114 |   4194304 | 2025-07-27 04:44:35.936000 | 2025-07-27 04:44:35.985000 | 2025-07-27 04:44:49.036000 | synced        | ingest, DXF |
  |    173 | test    | ddl_test2  | modify column | none                 |         2 |      112 |         0 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:36:30.036000 | rollback done |             |
  |    172 | test    | ddl_test2  | add index     | public               |         2 |      112 |   4194304 | 2025-07-27 04:34:35.636000 | 2025-07-27 04:34:35.685000 | 2025-07-27 04:34:45.486000 | synced        | ingest, DXF |
  |    171 | test    | ddl_test1  | modify column | public               |         2 |      110 |   4194304 | 2025-07-27 04:25:52.786000 | 2025-07-27 04:25:52.835000 | 2025-07-27 04:33:03.786000 | synced        |             |
  |    170 | test    | ddl_test1  | add index     | public               |         2 |      110 |   4194304 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:51.086000 | synced        | ingest, DXF |
  |    169 | tpcc    | item       | create table  | public               |       118 |      168 |         0 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.135000 | synced        |             |
  |    167 | tpcc    | stock      | create table  | public               |       118 |      162 |         0 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.636000 | synced        |             |
  |    161 | tpcc    | order_line | create table  | public               |       118 |      156 |         0 | 2025-07-27 04:22:39.036000 | 2025-07-27 04:22:39.086000 | 2025-07-27 04:22:39.086000 | synced        |             |
  |    155 | tpcc    | orders     | create table  | public               |       118 |      150 |         0 | 2025-07-27 04:22:38.536000 | 2025-07-27 04:22:38.536000 | 2025-07-27 04:22:38.585000 | synced        |             |
  |    149 | tpcc    | new_order  | create table  | public               |       118 |      144 |         0 | 2025-07-27 04:22:38.036000 | 2025-07-27 04:22:38.036000 | 2025-07-27 04:22:38.086000 | synced        |             |
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  12 rows in set (0.02 sec)
  ```

+ Use the command `ADMIN PAUSE DDL JOBS` along with the `JOB_ID` of the DDL jobs executed in the previous step to pause it. Please note that the `JOB_ID` in the code below needs to be specified according to the your environment and may not be `175` and `176`.

  ```sql
  ADMIN PAUSE DDL JOBS 175,176;
  ```

  ```output
  +--------+------------+
  | JOB_ID | RESULT     |
  +--------+------------+
  | 175    | successful |
  | 176    | successful |
  +--------+------------+
  2 rows in set (0.01 sec)
  ```

+ Use the command `ADMIN SHOW DDL JOBS` to check the status of the DDL job. In the example, the `JOB_ID` are `175` and `176`, and `STATE` are `pausing` and `pausing`, indicating that the have been paused. Please note that your output may differ from the example provided.

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE         | COMMENTS    |
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  |    175 | test    | ddl_test3  | modify column | write reorganization |         2 |      114 |         0 | 2025-07-27 04:44:56.336000 | 2025-07-27 04:44:56.386000 | NULL                       | pausing       |             |
  |    176 | test    | ddl_test4  | add index     | none                 |         2 |      116 |         0 | 2025-07-27 04:45:08.285000 | NULL                       | NULL                       | pausing       |             |
  |    174 | test    | ddl_test3  | add index     | public               |         2 |      114 |   4194304 | 2025-07-27 04:44:35.936000 | 2025-07-27 04:44:35.985000 | 2025-07-27 04:44:49.036000 | synced        | ingest, DXF |
  |    173 | test    | ddl_test2  | modify column | none                 |         2 |      112 |         0 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:36:30.036000 | rollback done |             |
  |    172 | test    | ddl_test2  | add index     | public               |         2 |      112 |   4194304 | 2025-07-27 04:34:35.636000 | 2025-07-27 04:34:35.685000 | 2025-07-27 04:34:45.486000 | synced        | ingest, DXF |
  |    171 | test    | ddl_test1  | modify column | public               |         2 |      110 |   4194304 | 2025-07-27 04:25:52.786000 | 2025-07-27 04:25:52.835000 | 2025-07-27 04:33:03.786000 | synced        |             |
  |    170 | test    | ddl_test1  | add index     | public               |         2 |      110 |   4194304 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:51.086000 | synced        | ingest, DXF |
  |    169 | tpcc    | item       | create table  | public               |       118 |      168 |         0 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.135000 | synced        |             |
  |    167 | tpcc    | stock      | create table  | public               |       118 |      162 |         0 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.636000 | synced        |             |
  |    161 | tpcc    | order_line | create table  | public               |       118 |      156 |         0 | 2025-07-27 04:22:39.036000 | 2025-07-27 04:22:39.086000 | 2025-07-27 04:22:39.086000 | synced        |             |
  |    155 | tpcc    | orders     | create table  | public               |       118 |      150 |         0 | 2025-07-27 04:22:38.536000 | 2025-07-27 04:22:38.536000 | 2025-07-27 04:22:38.585000 | synced        |             |
  |    149 | tpcc    | new_order  | create table  | public               |       118 |      144 |         0 | 2025-07-27 04:22:38.036000 | 2025-07-27 04:22:38.036000 | 2025-07-27 04:22:38.086000 | synced        |             |
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  12 rows in set (0.01 sec)
  ```

+ Please wait for a while, and return to [Grafana Dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000), in the `Query Summary` tab of `tidb-demo-TiDB-Summary`, you can see that the `Duration` panel starts to decline and the `Command Per Second` panel starts to raise. These indicate that the database's workload is no longer affected by DDL tasks, and the user experience is beginning to improve.

  ![70%](https://lab-static.pingcap.com/images/2025/7/27/7e5ab6935439206d1947a1ff45a0f978ae0dfba7.png)

+ On [Terminal 1](ssh://monitor1-ssh#1), wait for the TPC-C test to complete，or press <kbd>Ctrl</kbd>+<kbd>C</kbd> to stop the TPC-C tests.

  ```output
  ...
  [Summary] DELIVERY - Takes(s): 599.8, Count: 10974, TPM: 1097.8, Sum(ms): 1172026.8, Avg(ms): 106.9, 50th(ms): 92.3, 90th(ms): 176.2, 95th(ms): 218.1, 99th(ms): 335.5, 99.9th(ms): 671.1, Max(ms): 1342.2
  [Summary] NEW_ORDER - Takes(s): 599.8, Count: 124031, TPM: 12406.2, Sum(ms): 4598542.0, Avg(ms): 37.1, 50th(ms): 29.4, 90th(ms): 67.1, 95th(ms): 88.1, 99th(ms): 142.6, 99.9th(ms): 285.2, Max(ms): 1073.7
  [Summary] NEW_ORDER_ERR - Takes(s): 599.8, Count: 6, TPM: 0.6, Sum(ms): 166.6, Avg(ms): 27.8, 50th(ms): 23.1, 90th(ms): 37.7, 95th(ms): 60.8, 99th(ms): 60.8, 99.9th(ms): 60.8, Max(ms): 60.8
  [Summary] ORDER_STATUS - Takes(s): 599.8, Count: 10975, TPM: 1097.8, Sum(ms): 98169.0, Avg(ms): 8.9, 50th(ms): 7.9, 90th(ms): 14.2, 95th(ms): 17.8, 99th(ms): 29.4, 99.9th(ms): 65.0, Max(ms): 260.0
  [Summary] PAYMENT - Takes(s): 599.9, Count: 118543, TPM: 11856.6, Sum(ms): 5758996.8, Avg(ms): 48.6, 50th(ms): 39.8, 90th(ms): 96.5, 95th(ms): 117.4, 99th(ms): 167.8, 99.9th(ms): 302.0, Max(ms): 1040.2
  [Summary] PAYMENT_ERR - Takes(s): 599.9, Count: 9, TPM: 0.9, Sum(ms): 539.4, Avg(ms): 59.7, 50th(ms): 37.7, 90th(ms): 113.2, 95th(ms): 151.0, 99th(ms): 151.0, 99.9th(ms): 151.0, Max(ms): 151.0
  [Summary] STOCK_LEVEL - Takes(s): 599.7, Count: 11074, TPM: 1107.9, Sum(ms): 276158.1, Avg(ms): 24.9, 50th(ms): 21.0, 90th(ms): 44.0, 95th(ms): 52.4, 99th(ms): 79.7, 99.9th(ms): 142.6, Max(ms): 226.5
  [Summary] STOCK_LEVEL_ERR - Takes(s): 599.7, Count: 1, TPM: 0.1, Sum(ms): 4.1, Avg(ms): 3.9, 50th(ms): 4.2, 90th(ms): 4.2, 95th(ms): 4.2, 99th(ms): 4.2, 99.9th(ms): 4.2, Max(ms): 4.2
  tpmC: 12406.2, tpmTotal: 27566.3, efficiency: 24117.9%
  ```

### Step 5. Resume DDL jobs using `ADMIN RESUME DDL` command

+ On [Terminal 4](ssh://monitor1-ssh#4), connect to TiDB server instance.

  ```bash
  mysql -h ${HOST_TIPROXY1_PRIVATE_IP} --port 6000 -u root
  ```

  ```output
  mysql> 
  ```

+ Use the command `ADMIN RESUME DDL JOBS` along with the `JOB_ID` of the DDL jobs that were paused in the previous step to resume them. Please note that the `JOB_ID` in the command below needs to be specified according to your environment and may not be `175` and `176`.

  ```sql
  ADMIN RESUME DDL JOBS 175, 176;
  ```

  ```output
  +--------+------------+
  | JOB_ID | RESULT     |
  +--------+------------+
  | 175    | successful |
  | 176    | successful |
  +--------+------------+
  2 rows in set (0.00 sec)
  ```

+ Use the command `ADMIN SHOW DDL JOBS` to check the status of the DDL jobs. In the output, the `JOB_ID` are `175` and `176`, and `STATE` are `queueing` and `queueing`, indicating that they have resumed running. Please note that your output may differ from the example provided. Wait for the DDL job to complete.

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE         | COMMENTS    |
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  |    175 | test    | ddl_test3  | modify column | write reorganization |         2 |      114 |         0 | 2025-07-27 04:44:56.336000 | 2025-07-27 04:44:56.386000 | NULL                       | queueing      |             |
  |    176 | test    | ddl_test4  | add index     | none                 |         2 |      116 |         0 | 2025-07-27 04:45:08.285000 | 2025-07-27 04:50:45.286000 | NULL                       | queueing      |             |
  |    174 | test    | ddl_test3  | add index     | public               |         2 |      114 |   4194304 | 2025-07-27 04:44:35.936000 | 2025-07-27 04:44:35.985000 | 2025-07-27 04:44:49.036000 | synced        | ingest, DXF |
  |    173 | test    | ddl_test2  | modify column | none                 |         2 |      112 |         0 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:36:30.036000 | rollback done |             |
  |    172 | test    | ddl_test2  | add index     | public               |         2 |      112 |   4194304 | 2025-07-27 04:34:35.636000 | 2025-07-27 04:34:35.685000 | 2025-07-27 04:34:45.486000 | synced        | ingest, DXF |
  |    171 | test    | ddl_test1  | modify column | public               |         2 |      110 |   4194304 | 2025-07-27 04:25:52.786000 | 2025-07-27 04:25:52.835000 | 2025-07-27 04:33:03.786000 | synced        |             |
  |    170 | test    | ddl_test1  | add index     | public               |         2 |      110 |   4194304 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:51.086000 | synced        | ingest, DXF |
  |    169 | tpcc    | item       | create table  | public               |       118 |      168 |         0 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.135000 | synced        |             |
  |    167 | tpcc    | stock      | create table  | public               |       118 |      162 |         0 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.636000 | synced        |             |
  |    161 | tpcc    | order_line | create table  | public               |       118 |      156 |         0 | 2025-07-27 04:22:39.036000 | 2025-07-27 04:22:39.086000 | 2025-07-27 04:22:39.086000 | synced        |             |
  |    155 | tpcc    | orders     | create table  | public               |       118 |      150 |         0 | 2025-07-27 04:22:38.536000 | 2025-07-27 04:22:38.536000 | 2025-07-27 04:22:38.585000 | synced        |             |
  |    149 | tpcc    | new_order  | create table  | public               |       118 |      144 |         0 | 2025-07-27 04:22:38.036000 | 2025-07-27 04:22:38.036000 | 2025-07-27 04:22:38.086000 | synced        |             |
  +--------+---------+------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  12 rows in set (0.02 sec)
  ```

### Step 6. Wait for the DDL jobs to complete

+ On [Terminal 2](ssh://monitor1-ssh#2), wait for the DDL job to complete.

  ```output
  Query OK, 0 rows affected (16.28 sec)

  Query OK, 0 rows affected (18 min 48.04 sec)
  ```

+ On [Terminal 3](ssh://monitor1-ssh#3), wait for the DDL job to complete.

  ```output
  Query OK, 0 rows affected (20 min 30.99 sec)

  Query OK, 0 rows affected (3 min 51.02 sec)
  ```

+ On [Terminal 4](ssh://monitor1-ssh#4), use the command `ADMIN SHOW DDL JOBS` to check the status of the DDL jobs. In the example, the `JOB_ID` are `175` and `176`, and `STATE` are `synced` and `synced`, indicating that they have completed execution. Please note that your output may differ from the example provided.

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE      | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE         | COMMENTS    |
  +--------+---------+------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  |    177 | test    | ddl_test4  | modify column | public       |         2 |      116 |   7142699 | 2025-07-27 04:55:03.086000 | 2025-07-27 04:55:03.136000 | 2025-07-27 04:59:05.536000 | synced        |             |
  |    176 | test    | ddl_test4  | add index     | public       |         2 |      116 |   4194304 | 2025-07-27 04:45:08.285000 | 2025-07-27 04:50:45.286000 | 2025-07-27 04:54:51.086000 | synced        | ingest, DXF |
  |    175 | test    | ddl_test3  | modify column | public       |         2 |      114 |   4194304 | 2025-07-27 04:44:56.336000 | 2025-07-27 04:44:56.386000 | 2025-07-27 04:54:11.236000 | synced        |             |
  |    174 | test    | ddl_test3  | add index     | public       |         2 |      114 |   4194304 | 2025-07-27 04:44:35.936000 | 2025-07-27 04:44:35.985000 | 2025-07-27 04:44:49.036000 | synced        | ingest, DXF |
  |    173 | test    | ddl_test2  | modify column | none         |         2 |      112 |         0 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:34:49.586000 | 2025-07-27 04:36:30.036000 | rollback done |             |
  |    172 | test    | ddl_test2  | add index     | public       |         2 |      112 |   4194304 | 2025-07-27 04:34:35.636000 | 2025-07-27 04:34:35.685000 | 2025-07-27 04:34:45.486000 | synced        | ingest, DXF |
  |    171 | test    | ddl_test1  | modify column | public       |         2 |      110 |   4194304 | 2025-07-27 04:25:52.786000 | 2025-07-27 04:25:52.835000 | 2025-07-27 04:33:03.786000 | synced        |             |
  |    170 | test    | ddl_test1  | add index     | public       |         2 |      110 |   4194304 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:39.136000 | 2025-07-27 04:25:51.086000 | synced        | ingest, DXF |
  |    169 | tpcc    | item       | create table  | public       |       118 |      168 |         0 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.086000 | 2025-07-27 04:22:40.135000 | synced        |             |
  |    167 | tpcc    | stock      | create table  | public       |       118 |      162 |         0 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.586000 | 2025-07-27 04:22:39.636000 | synced        |             |
  +--------+---------+------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  10 rows in set (0.01 sec)
  ```

+ This is the end of Module 4.
