1. 首页 > Oracle教程 > 正文

Oracle教程FG341-直接路径写

本文档风哥主要介绍Oracle数据库直接路径写(Direct Path Write)相关知识,包括直接路径写的概念、原因、影响、规划、配置、管理、监控、优化等内容,由风哥教程参考Oracle官方文档Performance内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 直接路径写的概念

Oracle数据库直接路径写(Direct Path Write)是指Oracle在写入数据块时,绕过缓冲区缓存,直接将数据块写入磁盘的操作。直接路径写通常发生在批量加载、并行DML等操作时,Oracle会直接将数据块写入磁盘,以提高I/O效率。更多视频教程www.fgedu.net.cn

直接路径写的特点:

  • 绕过缓冲区缓存
  • 直接将数据块写入磁盘
  • 通常发生在批量加载、并行DML等操作时
  • 一次性写入多个数据块,提高I/O效率
  • 会产生大量的I/O操作

1.2 直接路径写的原因

Oracle数据库直接路径写的原因:

  • 批量加载:当执行批量加载操作时,Oracle会使用直接路径写
  • 并行DML:当执行并行DML操作时,Oracle会使用直接路径写
  • 排序操作:当执行排序操作时,Oracle会使用直接路径写
  • 创建表:当创建表时,Oracle会使用直接路径写
  • 索引构建:当构建索引时,Oracle会使用直接路径写

1.3 直接路径写的影响

Oracle数据库直接路径写的影响:

  • I/O负载增加:直接路径写会产生大量的I/O操作,增加I/O负载
  • 内存使用增加:直接路径写会将多个数据块写入PGA,增加内存使用
  • CPU使用率增加:直接路径写需要处理大量的数据块,增加CPU使用率
  • 系统性能下降:大量的直接路径写会导致系统性能下降
  • 响应时间增加:直接路径写会导致SQL语句执行时间增加
风哥提示:直接路径写是Oracle数据库性能问题的常见原因之一,通过分析直接路径写,可以识别数据库性能瓶颈,从而进行针对性的优化。

Part02-生产环境规划与建议

2.1 直接路径写规划

Oracle数据库直接路径写规划要点:

# 直接路径写规划步骤
1. 分析系统架构
2. 评估数据加载模式
3. 设计数据加载策略
4. 优化数据加载流程
5. 配置相关参数
6. 测试和验证
7. 监控和优化

# 适用场景
– 数据仓库系统
– 报表系统
– 分析系统
– 大型数据库
– 批量数据加载

# 不适用场景
– 在线交易系统
– 对响应时间要求高的系统
– 小型数据库

2.2 直接路径写设计

Oracle数据库直接路径写设计建议:

# 直接路径写设计原则
– 基于系统规模设计
– 基于数据加载模式设计
– 最小化直接路径写
– 最大化系统性能
– 合理配置参数

# 数据加载策略
– 使用批量加载工具
– 优化数据加载流程
– 合理分配资源
– 避免峰值加载

# 设计步骤
1. 分析系统需求
2. 设计数据加载策略
3. 优化数据加载流程
4. 配置相关参数
5. 测试性能效果
6. 调整配置

2.3 直接路径写最佳实践

Oracle数据库直接路径写最佳实践:

  • 使用批量加载工具:使用SQL*Loader、External Tables等批量加载工具
  • 优化数据加载流程:合理组织数据加载顺序,避免并行加载冲突
  • 合理配置参数:调整PGA、并行度等参数,提高数据加载效率
  • 使用分区表:将大表分区,减少直接路径写的范围
  • 使用并行DML:对于大型数据加载,使用并行DML提高性能
  • 监控直接路径写:定期监控直接路径写情况,及时发现和处理问题
生产环境建议:直接路径写规划应基于系统规模和数据加载模式,合理设计数据加载策略,优化数据加载流程,合理配置参数,使用分区表和并行DML,定期监控直接路径写情况,确保数据库运行高效。学习交流加群风哥微信: itpux-com

Part03-生产环境项目实施方案

3.1 直接路径写配置

3.1.1 配置并行DML

# 查看当前并行DML设置
SQL> SHOW PARAMETER parallel_dml;

NAME TYPE VALUE
———————————— ———– ——————————
parallel_dml boolean FALSE

# 启用并行DML
SQL> ALTER SESSION ENABLE PARALLEL DML;

Session altered.

# 为表设置并行度
SQL> ALTER TABLE employees PARALLEL 8;

Table altered.

3.1.2 配置PGA

# 查看当前PGA设置
SQL> SHOW PARAMETER pga_aggregate_target;

NAME TYPE VALUE
———————————— ———– ——————————
pga_aggregate_target big integer 512M

# 调整PGA设置
SQL> ALTER SYSTEM SET pga_aggregate_target = 1G SCOPE=BOTH;

System altered.

3.1.3 配置SQL*Loader

# SQL*Loader控制文件示例
LOAD DATA
INFILE ’employees.dat’
INTO TABLE employees
APPEND
FIELDS TERMINATED BY ‘,’
TRAILING NULLCOLS
(
employee_id,
first_name,
last_name,
email,
phone_number,
hire_date,
job_id,
salary,
commission_pct,
manager_id,
department_id
)

# 执行SQL*Loader
$ sqlldr userid=scott/tiger control=employees.ctl direct=true parallel=true

SQL*Loader: Release 19.0.0.0.0 – Production on Tue Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Path used: Direct – with parallel option.

Load completed – logical record count 1000000.

Table EMPLOYEES:
1000000 Rows successfully loaded.

Check the log file:
employees.log
for more information about the load.

3.2 直接路径写管理

3.2.1 管理直接路径写

# 查看直接路径写等待情况
SQL> SELECT
event,
wait_class,
total_waits,
time_waited,
average_wait
FROM v$system_event
WHERE event = ‘direct path write’;

EVENT WAIT_CLASS TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
—————————— ——————– ———– ———– ————
direct path write User I/O 1000 5000 5.0

# 查看会话级别的直接路径写等待
SQL> SELECT
s.sid,
s.username,
sw.event,
sw.wait_class,
sw.seconds_in_wait
FROM v$session s,
v$session_wait sw
WHERE s.sid = sw.sid
AND s.status = ‘ACTIVE’
AND sw.event = ‘direct path write’;

SID USERNAME EVENT WAIT_CLASS SECONDS_IN_WAIT
— ————- —————————— ——————– —————
123 SCOTT direct path write User I/O 10
124 HR direct path write User I/O 5

# 查看直接路径写的详细信息
SQL> SELECT
p1 AS file#,
p2 AS block#,
p3 AS blocks
FROM v$session_wait
WHERE event = ‘direct path write’;

FILE# BLOCK# BLOCKS
———- ———- ———-
1 1234 16
1 5678 16

3.2.2 分析直接路径写

# 分析直接路径写的文件和块
SQL> SELECT
file#,
block#,
blocks,
count(*)
FROM v$session_wait
WHERE event = ‘direct path write’
GROUP BY file#,
block#,
blocks
ORDER BY count(*) DESC;

FILE# BLOCK# BLOCKS COUNT(*)
———- ———- ———- ———-
1 1234 16 10
1 5678 16 5

# 查看文件对应的表
SQL> SELECT
owner,
segment_name,
segment_type
FROM dba_extents
WHERE file_id = 1
AND 1234 BETWEEN block_id AND block_id + blocks – 1;

OWNER SEGMENT_NAME SEGMENT_TYPE
———- ——————– ————
SCOTT EMPLOYEES TABLE

# 分析SQL语句
SQL> SELECT
s.sid,
s.username,
s.sql_id,
sw.event,
sw.seconds_in_wait
FROM v$session s,
v$session_wait sw
WHERE s.sid = sw.sid
AND s.status = ‘ACTIVE’
AND sw.event = ‘direct path write’;

SID USERNAME SQL_ID EVENT SECONDS_IN_WAIT
— ————- ————- —————————— —————
123 SCOTT abcd1234 direct path write 10
124 HR xyz7890 direct path write 5

# 查看SQL语句
SQL> SELECT
sql_id,
sql_text
FROM v$sql
WHERE sql_id IN (‘abcd1234’, ‘xyz7890’);

SQL_ID SQL_TEXT
————- —————————————-
abcd1234 INSERT /*+ APPEND */ INTO employees SELECT * FROM employees_staging
xyz7890 CREATE TABLE employees_copy AS SELECT * FROM employees

3.3 直接路径写监控

3.3.1 监控直接路径写

# 实时监控直接路径写
SQL> SELECT
event,
wait_class,
COUNT(*)
FROM v$session_wait
WHERE event = ‘direct path write’
GROUP BY event, wait_class;

EVENT WAIT_CLASS COUNT(*)
—————————— ——————– ——–
direct path write User I/O 5

# 使用AWR报告监控直接路径写
SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql

# 输入报告类型:html
# 输入开始快照ID:100
# 输入结束快照ID:101
# 输入报告文件名:awrrpt.html

# 查看AWR报告中的直接路径写部分
# Top 5 Wait Events
~~~~~~~~~~~~~~~~~~~
Avg
wait % DB
Event Waits Time(s) (ms) time Wait Class
———————————— ———– ———– —— —— ———-
direct path write 1000 5000 500 40.0 User I/O
db file scattered read 500 2500 500 20.0 User I/O

3.3.2 监控直接路径写历史

# 查看直接路径写历史
SQL> SELECT
h.snap_id,
h.event_name,
SUM(h.total_waits) AS total_waits,
SUM(h.time_waited_micro) / 1000000 AS time_waited_seconds
FROM dba_hist_system_event h
WHERE h.snap_id BETWEEN 100 AND 101
AND h.event_name = ‘direct path write’
GROUP BY h.snap_id, h.event_name
ORDER BY h.snap_id;

SNAP_ID EVENT_NAME TOTAL_WAITS TIME_WAITED_SECONDS
——- —————————— ———– ——————
100 direct path write 500 25
101 direct path write 500 25

# 查看会话直接路径写历史
SQL> SELECT
h.session_id,
h.event_name,
COUNT(*) AS wait_count,
SUM(h.wait_time + h.time_waited) / 100 AS total_wait_time_seconds
FROM dba_hist_active_sess_history h
WHERE h.sample_time BETWEEN SYSDATE – 1/24 AND SYSDATE
AND h.event_name = ‘direct path write’
GROUP BY h.session_id, h.event_name
ORDER BY total_wait_time_seconds DESC
LIMIT 10;

SESSION_ID EVENT_NAME WAIT_COUNT TOTAL_WAIT_TIME_SECONDS
———- —————————— ———– ———————-
123 direct path write 100 500
124 direct path write 50 250

风哥提示:定期监控直接路径写,及时发现和处理问题,确保数据库运行高效。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 直接路径写实施案例

在某企业的生产环境中,需要实施直接路径写监控和优化,提高数据库性能。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:中等规模,日交易量100万
– 问题:数据库性能下降,直接路径写严重

# 实施方案
1. 监控直接路径写
SQL> SELECT
event,
wait_class,
total_waits,
time_waited,
average_wait
FROM v$system_event
WHERE event = ‘direct path write’;

EVENT WAIT_CLASS TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
—————————— ——————– ———– ———– ————
direct path write User I/O 1000 5000 5.0

2. 分析直接路径写的文件和块
SQL> SELECT
file#,
block#,
blocks,
count(*)
FROM v$session_wait
WHERE event = ‘direct path write’
GROUP BY file#,
block#,
blocks
ORDER BY count(*) DESC;

FILE# BLOCK# BLOCKS COUNT(*)
———- ———- ———- ———-
1 1234 16 10
1 5678 16 5

3. 查看文件对应的表
SQL> SELECT
owner,
segment_name,
segment_type
FROM dba_extents
WHERE file_id = 1
AND 1234 BETWEEN block_id AND block_id + blocks – 1;

OWNER SEGMENT_NAME SEGMENT_TYPE
———- ——————– ————
SCOTT EMPLOYEES TABLE

4. 分析SQL语句
SQL> SELECT
s.sid,
s.username,
s.sql_id,
sw.event,
sw.seconds_in_wait
FROM v$session s,
v$session_wait sw
WHERE s.sid = sw.sid
AND s.status = ‘ACTIVE’
AND sw.event = ‘direct path write’;

SID USERNAME SQL_ID EVENT SECONDS_IN_WAIT
— ————- ————- —————————— —————
123 SCOTT abcd1234 direct path write 10
124 HR xyz7890 direct path write 5

5. 查看SQL语句
SQL> SELECT
sql_id,
sql_text
FROM v$sql
WHERE sql_id IN (‘abcd1234’, ‘xyz7890’);

SQL_ID SQL_TEXT
————- —————————————-
abcd1234 INSERT /*+ APPEND */ INTO employees SELECT * FROM employees_staging
xyz7890 CREATE TABLE employees_copy AS SELECT * FROM employees

6. 优化措施
– 调整PGA设置
SQL> ALTER SYSTEM SET pga_aggregate_target = 1G SCOPE=BOTH;

– 启用并行DML
SQL> ALTER SESSION ENABLE PARALLEL DML;

– 为表设置并行度
SQL> ALTER TABLE employees PARALLEL 8;

– 使用SQL*Loader进行批量加载
$ sqlldr userid=scott/tiger control=employees.ctl direct=true parallel=true

7. 验证优化效果
SQL> SELECT
event,
wait_class,
total_waits,
time_waited,
average_wait
FROM v$system_event
WHERE event = ‘direct path write’;

EVENT WAIT_CLASS TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
—————————— ——————– ———– ———– ————
direct path write User I/O 100 500 5.0

# 实施效果
– 直接路径写减少90%
– 数据库性能提高50%
– SQL执行时间减少70%
– 系统稳定性提高

4.2 直接路径写优化案例

在某金融机构的生产环境中,需要优化直接路径写,提高数据库性能。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:大规模,日交易量1000万
– 问题:直接路径写严重,影响数据库性能

# 优化方案
1. 监控直接路径写
SQL> SELECT
event,
wait_class,
total_waits,
time_waited,
average_wait
FROM v$system_event
WHERE event = ‘direct path write’;

EVENT WAIT_CLASS TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
—————————— ——————– ———– ———– ————
direct path write User I/O 5000 25000 5.0

2. 分析直接路径写的文件和块
SQL> SELECT
file#,
block#,
blocks,
count(*)
FROM v$session_wait
WHERE event = ‘direct path write’
GROUP BY file#,
block#,
blocks
ORDER BY count(*) DESC;

FILE# BLOCK# BLOCKS COUNT(*)
———- ———- ———- ———-
1 12345 16 50
1 67890 16 25

3. 查看文件对应的表
SQL> SELECT
owner,
segment_name,
segment_type
FROM dba_extents
WHERE file_id = 1
AND 12345 BETWEEN block_id AND block_id + blocks – 1;

OWNER SEGMENT_NAME SEGMENT_TYPE
———- ——————– ————
SCOTT TRANSACTIONS TABLE

4. 分析SQL语句
SQL> SELECT
s.sid,
s.username,
s.sql_id,
sw.event,
sw.seconds_in_wait
FROM v$session s,
v$session_wait sw
WHERE s.sid = sw.sid
AND s.status = ‘ACTIVE’
AND sw.event = ‘direct path write’;

SID USERNAME SQL_ID EVENT SECONDS_IN_WAIT
— ————- ————- —————————— —————
123 SCOTT abcd1234 direct path write 10
124 HR xyz7890 direct path write 5

5. 查看SQL语句
SQL> SELECT
sql_id,
sql_text
FROM v$sql
WHERE sql_id IN (‘abcd1234’, ‘xyz7890’);

SQL_ID SQL_TEXT
————- —————————————-
abcd1234 INSERT /*+ APPEND */ INTO transactions SELECT * FROM transactions_staging
xyz7890 CREATE TABLE transactions_copy AS SELECT * FROM transactions

6. 优化措施
– 调整PGA设置
SQL> ALTER SYSTEM SET pga_aggregate_target = 2G SCOPE=BOTH;

– 启用并行DML
SQL> ALTER SESSION ENABLE PARALLEL DML;

– 为表设置并行度
SQL> ALTER TABLE transactions PARALLEL 16;

– 使用分区表
SQL> CREATE TABLE transactions_part (
transaction_id NUMBER,
account_id NUMBER,
amount NUMBER,
transaction_date DATE
) PARTITION BY RANGE (transaction_date) (
PARTITION p_2026 Q1 VALUES LESS THAN (TO_DATE(‘2026-04-01’, ‘YYYY-MM-DD’)),
PARTITION p_2026 Q2 VALUES LESS THAN (TO_DATE(‘2026-07-01’, ‘YYYY-MM-DD’)),
PARTITION p_2026 Q3 VALUES LESS THAN (TO_DATE(‘2026-10-01’, ‘YYYY-MM-DD’)),
PARTITION p_2026 Q4 VALUES LESS THAN (TO_DATE(‘2027-01-01’, ‘YYYY-MM-DD’))
);

– 使用SQL*Loader进行批量加载
$ sqlldr userid=scott/tiger control=transactions.ctl direct=true parallel=true

7. 验证优化效果
SQL> SELECT
event,
wait_class,
total_waits,
time_waited,
average_wait
FROM v$system_event
WHERE event = ‘direct path write’;

EVENT WAIT_CLASS TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
—————————— ——————– ———– ———– ————
direct path write User I/O 500 2500 5.0

# 优化效果
– 直接路径写减少90%
– 数据库性能提高60%
– SQL执行时间减少80%
– 系统稳定性提高

4.3 直接路径写问题处理

在某电商网站的生产环境中,直接路径写导致数据库性能下降,需要处理。

# 问题现象
– 数据库性能突然下降
– 系统负载增加
– 直接路径写严重

# 分析步骤
1. 监控直接路径写
SQL> SELECT
event,
wait_class,
total_waits,
time_waited,
average_wait
FROM v$system_event
WHERE event = ‘direct path write’;

EVENT WAIT_CLASS TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
—————————— ——————– ———– ———– ————
direct path write User I/O 2000 10000 5.0

2. 分析直接路径写的文件和块
SQL> SELECT
file#,
block#,
blocks,
count(*)
FROM v$session_wait
WHERE event = ‘direct path write’
GROUP BY file#,
block#,
blocks
ORDER BY count(*) DESC;

FILE# BLOCK# BLOCKS COUNT(*)
———- ———- ———- ———-
1 1234 16 20
1 5678 16 10

3. 查看文件对应的表
SQL> SELECT
owner,
segment_name,
segment_type
FROM dba_extents
WHERE file_id = 1
AND 1234 BETWEEN block_id AND block_id + blocks – 1;

OWNER SEGMENT_NAME SEGMENT_TYPE
———- ——————– ————
SCOTT ORDERS TABLE

4. 分析SQL语句
SQL> SELECT
s.sid,
s.username,
s.sql_id,
sw.event,
sw.seconds_in_wait
FROM v$session s,
v$session_wait sw
WHERE s.sid = sw.sid
AND s.status = ‘ACTIVE’
AND sw.event = ‘direct path write’;

SID USERNAME SQL_ID EVENT SECONDS_IN_WAIT
— ————- ————- —————————— —————
123 SCOTT abcd1234 direct path write 10
124 HR xyz7890 direct path write 5

5. 查看SQL语句
SQL> SELECT
sql_id,
sql_text
FROM v$sql
WHERE sql_id IN (‘abcd1234’, ‘xyz7890’);

SQL_ID SQL_TEXT
————- —————————————-
abcd1234 INSERT /*+ APPEND */ INTO orders SELECT * FROM orders_staging
xyz7890 CREATE TABLE orders_copy AS SELECT * FROM orders

# 问题原因
– PGA设置过小
– 并行度设置不合理
– 数据加载流程未优化
– 表数据量过大

# 解决方案
1. 调整PGA设置
SQL> ALTER SYSTEM SET pga_aggregate_target = 1G SCOPE=BOTH;

2. 启用并行DML
SQL> ALTER SESSION ENABLE PARALLEL DML;

3. 为表设置并行度
SQL> ALTER TABLE orders PARALLEL 8;

4. 使用分区表
SQL> CREATE TABLE orders_part (
order_id NUMBER,
customer_id NUMBER,
total_amount NUMBER,
order_date DATE
) PARTITION BY RANGE (order_date) (
PARTITION p_2026 Q1 VALUES LESS THAN (TO_DATE(‘2026-04-01’, ‘YYYY-MM-DD’)),
PARTITION p_2026 Q2 VALUES LESS THAN (TO_DATE(‘2026-07-01’, ‘YYYY-MM-DD’)),
PARTITION p_2026 Q3 VALUES LESS THAN (TO_DATE(‘2026-10-01’, ‘YYYY-MM-DD’)),
PARTITION p_2026 Q4 VALUES LESS THAN (TO_DATE(‘2027-01-01’, ‘YYYY-MM-DD’))
);

5. 使用SQL*Loader进行批量加载
$ sqlldr userid=scott/tiger control=orders.ctl direct=true parallel=true

6. 验证问题解决
SQL> SELECT
event,
wait_class,
total_waits,
time_waited,
average_wait
FROM v$system_event
WHERE event = ‘direct path write’;

EVENT WAIT_CLASS TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
—————————— ——————– ———– ———– ————
direct path write User I/O 200 1000 5.0

# 解决效果
– 直接路径写减少90%
– 数据库性能恢复正常
– 系统负载降低
– SQL执行时间减少80%

生产环境建议:定期监控直接路径写,及时发现和处理问题,确保数据库运行高效。更多学习教程公众号风哥教程itpux_com

Part05-风哥经验总结与分享

5.1 直接路径写管理经验

Oracle数据库直接路径写管理经验:

  • 使用批量加载工具:使用SQL*Loader、External Tables等批量加载工具,提高数据加载效率
  • 优化数据加载流程:合理组织数据加载顺序,避免并行加载冲突
  • 合理配置参数:调整PGA、并行度等参数,提高数据加载效率
  • 使用分区表:将大表分区,减少直接路径写的范围
  • 使用并行DML:对于大型数据加载,使用并行DML提高性能
  • 监控直接路径写:定期监控直接路径写情况,及时发现和处理问题
  • 持续优化:根据分析结果,持续优化数据库性能
风哥提示:直接路径写是Oracle数据库性能问题的常见原因之一,通过分析直接路径写,可以识别数据库性能瓶颈,从而进行针对性的优化,提高数据库性能。from oracle:www.itpux.com

5.2 直接路径写检查清单

# 直接路径写管理检查清单
– [ ] 监控直接路径写情况
– [ ] 分析直接路径写的文件和块
– [ ] 查看文件对应的表
– [ ] 分析SQL语句
– [ ] 优化SQL语句
– [ ] 合理配置参数
– [ ] 使用批量加载工具
– [ ] 使用分区表
– [ ] 使用并行DML
– [ ] 验证优化效果

# 直接路径写问题处理流程
1. 发现数据库性能问题
2. 监控直接路径写
3. 分析直接路径写的文件和块
4. 查看文件对应的表
5. 分析SQL语句
6. 识别直接路径写原因
7. 制定解决方案
8. 实施解决方案
9. 验证问题解决
10. 总结经验,优化配置

5.3 直接路径写管理工具

Oracle数据库直接路径写管理常用工具:

  • v$system_event:查看系统级别的直接路径写
  • v$session_wait:查看会话级别的直接路径写
  • dba_hist_system_event:查看直接路径写历史
  • dba_hist_active_sess_history:查看会话直接路径写历史
  • AWR报告:分析数据库性能
  • ASH报告:分析活动会话历史
  • SQL*Loader:批量加载数据
  • External Tables:外部表加载数据
  • Oracle Enterprise Manager:图形化监控和管理
持续改进:直接路径写管理是一个持续的过程,需要定期review和优化。建议建立直接路径写管理的规范和流程,不断改进数据库性能监控效果。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息