9istatspack使用手册

内容包括
  statspack安装
  statspack报告的详细说明

Statspack  使用说明

一.statspack系统安装 1
二.Statspack介绍 2
三.Statspack使用 4
四.Statspack报告说明 5



一.statspack系统安装
statspack的安装程序在@?/rdbms/admin/下:
spcreate.sql  安装
spdrop.sql  卸载
spauto.sql: 生成自动采集数据任务
spreport.sql  生成分析报告
spuexp.sql  参数文件
sppurge.sql 清除不在需要的数据
sptrunc.sql  清除所有的数据
sprepsql.sql:用于根据给定的SQL HASH值生成SQL报告

为了能顺利地运行Statspack 工具,则需要设置以下参数:
job_queue_processes>0  (如果不采用自动采集数据则可不设)
timed_statistics=true (如果不采用自动采集数据则可不设)

安装
1.建一个单独的表空间用于Statspack 或建在tools表空间上(>100MB)
$sqlplus “/ as sysdba”
SQL>create tablespace perfstat
SQL>datafile ‘/oracle/oradata/perfstat.dbf’
SQL>size 500M extent management local;
2.建用户perfstat及表
 SQL>@?/rdbms/admin/spcreate.sql
要求输入表空间及临时表空间.
建完后会在本目录下生成:
    spauto.lis
          spcpkg.lis
          spctab.lis
          spcusr.lis
spdtab.lis
spdusr.lis
grep –I “ora-“ *.lis 查看是否有错。

3.删除statspack表
SQL>@?/rdbms/admin/spdrop.sql
4.测试statspack
采样数据
SQL> exec statspack.snap
  后隔几分钟后再次采样数据
SQL> exec statspack.snap
           生成报表 
SQL>@?/rdbms/admin/spreport.sql

二.Statspack介绍
Oracle9i调优顺序一般采用自顶向下的顺序:



















Statspack源于utlbstat和utlestat工具,在执行快照时,statspack会从 SGA内部的RAW内存结构中来采样数据,并将结果存入相应表中。
RAW v$内存结构表    à    statspack   stats$内存结构表
  V$sysstat  stats$sysstat
        V$sgastat                               stats$sgastat
        V$parameter                          stats$parameter
         V$librarycache                      stats$librarycache
1. 外部环境
内存
vmstat 
bash-2.03$ vmstat 2 5
 procs     memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr s0 s1 s1 --   in   sy   cs us sy id
 0 0 0 9868032 2120968 14 3 159 8  8  0  0  0  0 24  0  306  455 1204  1  2 97
 0 1 0 9813224 2154792 29 6  0 20 20  0  0  0  0 39  0  388 9587 2353  3  3 94
 0 0 0 9813224 2154296 39 0  0 40 40  0  0  0  1 46  0  393 9529 2363  5  3 92
 0 1 0 9813224 2153736 36 3  0 20 20  0  0  0  0 48  0  397 9387 2364  3  3 93
 0 0 0 9813224 2153232 37 3  0 20 20  0  0  0  0 48  0  397 9483 2360  4  3 93
其中:
CPU瓶颈:
proc下:
     r:正在运行的任务队列,当r>CPU数量时,则会出现CPU等待瓶颈 
查看CPU个数:
psrinfo –v|grep –I “status of processor” | wc -l
RAM瓶颈:
  Page下:
Pi:页导入次数:如果RAW短缺时,系统会产生pi操作
查看内存容量
   prtconf|grep –i  “mem”

2. 系统IO
   sar –d
bash-2.03$ sar -d 2 2

SunOS mydb001 5.8 Generic_108528-13 sun4us    01/09/04

08:35:11   device        %busy   avque   r+w/s  blks/s  avwait  avserv

08:35:13   nfs1              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0
           sd1               0     0.0       0      40     0.0     6.3
           sd1,a             0     0.0       0      40     0.0     6.3
           sd1,c             0     0.0       0       0     0.0     0.0
           sd1,d             0     0.0       0       0     0.0     0.0
           sd1,e             0     0.0       0       0     0.0     0.0
           sd1,f             0     0.0       0       0     0.0     0.0
           sd16             28     0.5      51     817     0.0    10.2
           sd16,a           28     0.5      51     817     0.0    10.2
           sd16,c            0     0.0       0       0     0.0     0.0
           ohci0,bu          0     0.0       0       0     0.0     0.0
           ohci0,ct          0     0.0       0       0     0.0     0.0
           ohci0,in          0     0.0       0       0     0.0     0.0
           ohci0,is          0     0.0       0       0     0.0     0.0
           ohci0,to          0     0.0       0       0     0.0     0.0
           
08:35:15   nfs1              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0
           sd1               0     0.0       1      79     0.0     4.9
           sd1,a             0     0.0       1      79     0.0     4.9
           sd1,c             0     0.0       0       0     0.0     0.0
           sd1,d             0     0.0       0       0     0.0     0.0
           sd1,e             0     0.0       0       0     0.0     0.0
           sd1,f             0     0.0       0       0     0.0     0.0
           sd16             27     0.5      47     745     0.0    10.4
           sd16,a           27     0.5      47     745     0.0    10.4
           sd16,c            0     0.0       0       0     0.0     0.0
           ohci0,bu          0     0.0       0       0     0.0     0.0
           ohci0,ct          0     0.0       0       0     0.0     0.0
           ohci0,in          0     0.0       0       0     0.0     0.0
           ohci0,is          0     0.0       0       0     0.0     0.0
           ohci0,to          0     0.0       0       0     0.0     0.0


Average    nfs1              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0
           sd1               0     0.0       1      59     0.0     5.4
           sd1,a             0     0.0       1      59     0.0     5.4
           sd1,c             0     0.0       0       0     0.0     0.0
           sd1,d             0     0.0       0       0     0.0     0.0
           sd1,e             0     0.0       0       0     0.0     0.0
           sd1,f             0     0.0       0       0     0.0     0.0
           sd16             27     0.5      49     781     0.0    10.3
           sd16,a           27     0.5      49     781     0.0    10.3
           sd16,c            0     0.0       0       0     0.0     0.0
           ohci0,bu          0     0.0       0       0     0.0     0.0
           ohci0,ct          0     0.0       0       0     0.0     0.0
           ohci0,in          0     0.0       0       0     0.0     0.0
           ohci0,is          0     0.0       0       0     0.0     0.0
           ohci0,to          0     0.0       0       0     0.0     0.0
说明 :
   一般%busy高些,%avque低些,文件系统的效率会较高,目前系统文件系统效率已达到


三.Statspack使用
3. 手工采样数据
sqlplus perfstat/perfstat

SQL> exec statspack.snap
  后隔几分钟后再次采样数据
SQL> exec statspack.snap
           生成报表 
SQL>@?/rdbms/admin/spreport.sql

4. 系统自动采样数据
定义定时任务
  修改spauto.sql内容,定义采样数据的时间间隔
dbms_job.submit(:jobno,’statspack.snap;’,trunc(sysdate+1/24,”HH”),’trunc(sysdate+1/24,”HH”),TRUE,:instno);
  一天24小时,1440分钟,则:
每小时一次: 1/24    (建议使用)
每30分钟一次:  1/48
每10分钟一次 1/144
每5分钟一次 1/288
后执行
   SQL>@?/rdbms/admin/spauto.sql

生成分析报告
SQL>@?/rdbms/admin/spreport.sql

停止定时任务
sqlplus perfstat/perfstat
SQL>select job,interval from user_jobs;
SQL>exec dbms_job.remove(‘:job_no’);

删除历史数据
 delete from stats$snapshot where snap_id   删除全部数据
  SQL>@?/rdbms/admin/sptrunc.sql

 
四.Statspack报告说明
Statspack报告分为几个部分:
5. 数据库总体信息
6. 每秒每事务的资源消耗情况
7. 实例的各组件的命中率
8. 共享池总体情况
9. 前5个等待事件
10. DB所有等待事件
11. 后台进程等待事件
12. 根据BufferGets进行排序的SQL
13. 按物理IO进行排序的SQL
14. 按执行次数排序的SQL
15. 按分析次数排序的SQL
16. 实例的当前活动的统计数据
17. tablespace IO统计数据
18. 表空间文件 IO统计数据
19. buffer池统计数据
20. 实例恢复统计数据
21. Buffer池的参考数据
22. Buffer等待统计数据
23. PGA总体统计数据 1
24. PGA总体统计数据2
25. PGA内存参考数据
26. 回滚段统计
27. 回滚段存储统计
28. undo段总体情况
29. undo段统计
30. 锁存器的当前情况
31. 锁存器睡眠等待统计
32. 锁存器失败情况
33. 数据字典cache性能统计
34. 库cache 性能统计
35. 共享池性能统计
36. SGA区总体情况
37. SGA各组件的活动情况
38.  系统配置参数


STATSPACK report for
------------------------------------1.DB的总体信息----------------------------------------------------
DB Name         DB Id           Instance     Inst Num  Release  Cluster Host
------------ -----------       ------------         --------     ----------- ------- ------------
MYDB      2125240762  mydb          1      9.2.0.1.0    NO      VCS-SERVER1

                     Snap Id     Snap Time            Sessions Curs/Sess Comment
                    -------    ------------------             -------     --------- -------------------
Begin Snap:     1        09-Aug-04 19:28:12         32        2.7
  End Snap:      2       09-Aug-04 19:33:06         32        3.0
   Elapsed:                4.90 (mins)  (本次报告的间隔时间)

Cache Sizes (end)
~~~~~~~~~~~~~~~~~
                Buffer Cache:     1,536M        Std Block Size:         8K
           Shared Pool Size:       112M          Log Buffer:    16,000K

--------------------------2.每秒每事务的资源消耗情况---------------------
Load Profile
~~~~~~~~~~~~                      Per Second (每秒)      Per Transaction(每事务)
                                                  ---------------            ---------------
                    Redo size:                 38,498.93            6,733.30 –每秒/每事务产生的redo大小
              Logical reads:                    593.28                103.76 –每秒/每事务逻辑读
              Block changes:                    77.60                 13.57 –每秒/每事务修改的块数
             Physical reads:                        2.65                  0.46 --  每秒/每事务物理读
            Physical writes:                       8.17                  1.43 —每秒/每事务物理写
                    User calls:                     38.32                  6.70
                         Parses:                        6.52                  1.14  --SQL分析的次数
                Hard parses:                        0.05                  0.01 –SQL硬分析的次数
                          Sorts:                        0.73                  0.13--
                      Logons:                       0.01                  0.00
                    Executes:                     39.64                  6.93
              Transactions:                       5.72

  % Blocks changed per Read:   13.08    Recursive Call %:    24.84
 Rollback per transaction %:    0.00       Rows per Sort:   138.04
说明:
硬分析:就是之前不存在此SQL,是第一次解析。 如果SQL重用度很高,则硬解析应保持很低。
% Blocks changed per Read:表示逻辑读用于只读而不是修改的块的比例
Recursive Call %:递归调用SQL的比例,在PL/SQL上执行的SQL称为递归的SQL
Rollback per transaction %:    事务的回滚率
Rows per Sort:   每次排序的记录行数


-----------------------------------3.实例的各组件的命中率-----------------------------------
Instance Efficiency Percentages (Target 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Buffer Nowait %:  100.00                Redo NoWait %:  100.00
               Buffer  Hit   %:   99.55              In-memory Sort %:  100.00
              Library Hit   %:   99.33                        Soft Parse %:   99.16
        Execute to Parse %:   83.56                         Latch Hit %:   99.99
Parse CPU to Parse Elapsd %:                   % Non-Parse CPU:
说明:
   Execute to Parse %:   是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。
  Soft Parse %:软分析:即在共享池中重复使用的SQL,系统应保持较高的软分析率,否则说明系统的SQL没有绑定变量。
Parse CPU to Parse Elapsd %:  用于分析每个CPU 花费的秒数,应该处于较高比例。如果=100%,说明CPU没有等待。
          
---------------------------------4.共享池总体情况---------------------------------------------------------
 Shared Pool Statistics                   Begin     End
                                                     ------      ------
             Memory Usage %:            89.91     90.55
    % SQL with executions>1:       32.14      32.67
  % Memory for SQL w/exec>1:   31.30     33.38
说明:
  Memory Usage %:   正在使用的共享池的%,这个值应保持在75%~90%,如果这个值太低,就浪费内存,如果太高,会使共享池外部的组件老化,如果SQL语句被再次执行,则就会发生硬分析。
% SQL with executions>1:共享池中有多少执行次数大于一次的SQL语句的度量。
% Memory for SQL w/exec>1:   频繁使用的SQL语句消耗内存多少的比例。

------------------------------5.前5个等待事件------------------------------------------------
Top 5 Timed Events
~~~~~~~~~~~~~~~~~~                                                      % Total
Event                                                 Waits        Time (s)    Ela Time
-------------------------------------------- ------------ ----------- --------
db file sequential read                         623           3              46.70
log file sync                                       1,682           2             32.30
control file parallel write                      95             1             8.16
db file parallel write                            190             0          6.09
log file parallel write                             1,674           0         5.77
          -------------------------------------------------------------
说明:
 log file sync:当一个用户的会话提交时,会话的重写信息需要刷新到重做日志文件中,这个用户会话将发送LGWR将日志缓冲写到重做日志文件,当LGWR已经完成写入操作时,它将发送这个用户会话。
Wait Time:等待时间包括日志缓冲的写入和发送操作。


--------------------------------------6.DB所有等待事件-------------------------------------------------
Wait Events for DB: MYDB  Instance: mydb  Snaps: 1 -2
-> s  - second
-> cs - centisecond -     100th of a second
-> ms - millisecond -    1000th of a second
-> us - microsecond - 1000000th of a second
-> ordered by wait time desc, waits desc (idle events last)

                                                                                                            Avg
                                                                                        Total Wait   wait    Waits
Event                                                Waits     Timeouts   Time (s)   (ms)     /txn
----------------------------                 ------------   ---------- ---------- ------ --------
db file sequential read                          623          0               3            5          0.4
log file sync                                        1,682         0               2            1         1.0
control file parallel write                       95           0               1            6         0.1
db file parallel write                            190           95             0            2          0.1
log file parallel write                         1,674        1,664          0             0         1.0
db file scattered read                            25            0               0             2          0.0
control file sequential read                   78            0               0            0           0.0
LGWR wait for redo copy                    13            0               0            0          0.0
SQL*Net break/reset to clien                 4             0              0            0           0.0
buffer busy waits                                   2              0               0           0          0.0
latch free                                                1              0               0           0           0.0
SQL*Net message from client            10,830        0           4,364       403       6.4
SQL*Net more data from clien           1,596          0              0            0          0.9
SQL*Net message to client               10,830          0              0            0        6.4
          -------------------------------------------------------------


--------------------------------7.后台进程等待事件-----------------------------------------
Background Wait Events for DB: MYDB  Instance: mydb  Snaps: 1 -2
-> ordered by wait time desc, waits desc (idle events last)

                                                                                                     Avg
                                                                                 Total Wait   wait    Waits
Event                                           Waits   Timeouts   Time (s)     (ms)     /txn
----------------------------            ------------ ----------  ----------      ------ --------
control file parallel write                95          0                1               6      0.1
db file parallel write                      190         95              0               2      0.1
log file parallel write                    1,674      1,664          0               0      1.0
control file sequential read             36          0                0               0      0.0
LGWR wait for redo copy              13          0                0               0      0.0
rdbms ipc message                        5,352      3,687      1,148         214    3.2
smon timer                                      1            1              281     ######      0.0
          -------------------------------------------------------------

------------------8.根据BufferGets进行排序的SQL-----------------------------------
SQL ordered by Gets for DB: MYDB  Instance: mydb  Snaps: 1 -2
-> End Buffer Gets Threshold:   10000
-> Note that resources reported for PL/SQL includes the resources used by
   all SQL statements called within the PL/SQL code.  As individual SQL
   statements are also reported, it is possible and valid for the summed
   total % to exceed 100

                                                                                              CPU    Elapsd
  Buffer Gets     Executions   Gets per Exec   %Total Time (s)  Time (s)  Hash Value
---------------        ------------        --------------        ------     --------    ---------        ----------
         74,380           20                    3,719.0             42.6     0.00       5.03         1027916473
select count(*) from myuser.userbaseinfo

         10,920        1,291                   8.5                   6.3       0.00        0.71         1385081364
insert into Refence_tabvalues(:p1, :p2, :p3, :p4, :p5,:p6)

         10,629          132                 80.5                    6.1      0.00         0.49        2785281485
update msginfo set Orig_Addr=:p1,Dest_Addr=:p2,service_type=:p3
,sub_serv_type=:p4,TransactionID=:p5,Priority=:p6,state=:p7,Send
Count=:p8,errorCode=:p9,finalDate=:p10,smFlag=:p11,tVaspId=:p12,
tVasId=:p13,tServiceCode=:p14,DateTime=:p15,DeliveryTime=:p16,Re
adReply=:p17,bAdaptations=:p18,ContentType=:p19,bMsgDistributeIn

          9,751        2,435                  4.0                     5.6     0.00          0.70        2271041384
select * from msginfo where msg_id=:p1

          9,625        2,907                  3.3                     5.5     0.00         0.93         1077832894
select * from userinfo where sub_isdn=:p1

          5,824        1,962                  3.0                     3.3     0.00         1.72        2431777133
select * from destinfo where sub_isdn=:p1

          5,787        1,156                 5.0                      3.3     0.00        0.55          3134087587
select * from msginfo_all where msg_id=:p1

          4,648           90                  51.6                     2.7     0.00        0.51         1112211039
begin smsc_util.modify_destinfo(:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9,:p10,:p11,:p12,:p13,:p14); end;

          4,031           90                  44.8                      2.3     0.00      0.23           3842824015
UPDATE destinfo SET  sub_isdn  = :b14,  NonMmsEmailAddr = :b13, sub_state= :b12,
          local_time = :b11, desiredTime =:b10,  dest_inf  = :b9,   msg_num  = :b8,             done_msg_info   = :b7,    mailN

          3,293           67                49.1                        1.9     0.00      0.16            2175688974
insert into msginfo values(:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9,
:p10,:p11,:p12,:p13,:p14,:p15,:p16,:p17,:p18,:p19,:p20,:p21,:p22
,:p23,:p24,:p25,:p26,:p27,:p28,:p29,:p30,:p31,:p32,:p33,:p34,:p3
5,:p36,:p37,:p38,:p39,:p40,:p41,:p42,:p43,:p44,:p45,:p46,:p47,:p
48,:p49,:p50,:p51,:p52,:p53,:p54,:p55,:p56,:p57,:p58,:p59,:p60,:

          2,149           28           76.8                              1.2     0.00      0.21             3752979796
delete from Refence_tabwhere SrvMsgID=:p1 and dest_addr=:p2

          1,888          118           16.0                             1.1     0.00      0.08              2500993063
select ISDN,pass from smReq where isDel = '0'

          1,888     &nb

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84251/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-84251/

源码链接: https://pan.quark.cn/s/a4b39357ea24 斐讯K2是一款广受用户青睐的无线路由器,其运行表现稳定且具备较高的可操作性,在DIY爱好者群体中拥有极高的声誉。本资料将系统性地阐述斐讯K2的固件刷机方法及其关联的技术要点。固件升级是路由器爱好者改善设备性能、扩展功能的一种普遍手段,经由替换出厂固件,能够达成更加个性化的网络配置、增强安全防护等目标。斐讯K2固件资源库涵盖了多种知名的非官方固件,诸如Tomato Pheonix 不死鸟、高恪、PandoraBox 潘多拉等,这些固件均具备独特的优势,能够适配不同用户的需求。 1. Tomato Pheonix 不死鸟:Tomato是一款立足于Linux的开源固件,以其精巧、高效而备受推崇。不死鸟版本是专门为华硕及斐讯路由器优化的分支,提供了卓越的QoS(服务质量)配置、详尽的图表监控以及便捷的固件升级途径。对于那些需要精准调控带宽和监测网络状态的用户而言,这是一个理想的选项。 2. 高恪:高恪固件是OpenWrt的定制化版本,着重于操作的便捷性和运行的可靠性,特别适合对路由器操作不甚熟悉的用户群体。它提供了一些实用的功能,例如内置的广告屏蔽、快速测速工具等,同时保留了OpenWrt的适应性。 3. PandoraBox 潘多拉:潘多拉盒是另一款基于OpenWrt的固件,它以丰富的插件库和强大的自定义潜力而闻名。用户能够依据个人需求安装各类插件,实现更多功能,如远程接入、DDNS(动态域名解析服务)等。 4. 官方固件的纯净版本与定制版本:官方固件通常更侧重于稳定性,纯净版意味着未预置额外的应用或服务,适合注重稳定性的用户。定制版则可能包含了制造商的特色功能或优...
源码下载地址: https://pan.quark.cn/s/926926948560 AS3.0与XML结合的通用图片滚动功能,是一种基于ActionScript 3.0和XML技术的动态图像展示方案,非常适合初学者进行学习和实践应用。此项目的关键在于借助XML文件作为数据媒介,用来保存图像的相关参数,例如图像的链接地址、展示的次序等,接着在AS3.0环境中对XML进行解析,并动态地载入和展示这些图像,达成图像的滚动或是循环播放的目的。 我们需要明确ActionScript 3.0(AS3.0)是Adobe Flash Professional以及Flex Builder等开发工具中采用的编程语言,用于构建交互式内容以及丰富的互联网应用。相较于先前的版本,AS3.0在性能上有了大幅度的提升,并且引入了更为规范的面向对象编程模式,涵盖了类、接口以及包等概念。 XML(可扩展标记语言)是一种简明且高效的数据传输格式,既便于人类阅读和编写,也易于机器进行解析和生成。在该项目中,XML文件用于存储图像数据,例如图像的URL、延时的时长、动画的样式等,通过这种方式可以将数据与程序代码分离,从而增强代码的可维护性与可扩展程度。 实施这一图片滚动功能,主要涉及到以下AS3.0的核心知识点: 1. **XML解析**:运用`XML`类来载入并解析XML文件,从而获取图像的清单。AS3.0提供了简便的API来操作XML节点,例如`children()`、`attributes()`等,用以获取子节点和属性值。 2. **事件监听**:借助`EventDispatcher`类来监控载入和解析过程中的事件,比如`Event.OPEN`、`Event.PROGRESS`、`Event...
内容概要:本文介绍了软件许可管理的技术实现方式及相关工具资源,重点阐述了加密外壳(EMS)和API加密两种保护机制。加密外壳通过将程序(如.exe、.dll、.apk)封装在加密壳中,实现运行时内存解密,防止静态反编译和代码篡改,同时支持对数据文件、系统参数及部分代码的加密,并依赖硬件锁(HL)或软件锁(SL)进行授权控制。API加密则通过在代码中嵌入安全验证调用,确保授权合法后才执行核心逻辑。文章还说明了锁的类型(HL/SL)、模式(有驱/AdminMode与无驱/UserMode)、升级路径以及虚拟时钟功能,并描述了产品授权流程从功能定义到产品创建、授权生成的全过程,支持通过C2V文件或锁ID复制已有授权状态。文中附带多个开源平台链接和技术博客参考资源。; 适合人群:从事软件版权保护、授权系统开发或安全技术研究的研发人员,尤其是具备一定逆向工程、软件安全基础的1-3年经验开发者。; 使用场景及目标:①构建安全的软件授权体系,防止盗版和非法使用;②实现灵活的功能授权管理(如时效、并发、硬件绑定);③选择合适的加密方案(硬件锁/软锁、有驱/无驱)并集成到现有产品中;④学习加密外壳与API验证的实际应用方法; 阅读建议:此资源侧重于软件许可的技术架构与实施细节,建议结合提供的GitHub、Gitee项目链接及CSDN技术文章深入理解实现原理,并通过实际调试加密壳和模拟授权流程加强实践能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值