赞
踩
目录
12.性能排查sql a.查看耗时SQL;b.查看CPU耗时最多的SQL语句;c.查看消耗磁盘读取最多的SQL
- --条件查询
- select * from Kess a where a.UUID = 'b487-757';
-
- nner join(等值连接) 只返回两个表中联结字段相等的行
- left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
- right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
- INNER JOIN 语法:
- INNER JOIN 连接两个数据表的用法:
- select * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
-
- --去重
- select distinct(a.cust_code) from otc_match_app a where a.app_date=20181108 and to_char(a.app_timestamp,'mmddhhMM')<'11080901';
-
- --查数据库中所有的表的话
- select count(*) FROM dba_tables;
-
- --模糊查询
- select * from Persons where City like 'N%';
-
- --以逆字母顺序显示公司名称,并以数字顺序显示顺序号:asc升序-默认、desc降序
- select Company, Number FROM kess order by Company DESC, Number ASC;
-
- --资金总和,分组
- select Customer,SUM(OrderPrice) FROM Orders
- GROUP BY Customer
-
-
-
- --插入语句
- INSERT INTO 表名称 VALUES (值1, 值2,....);
-
- --也可以指定所要插入数据的列:
- INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
-
- --修改语句
- UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
-
- UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' where LastName = 'Wilson'
-
-
- --删除数据:删除满足条件的记录
- DELETE from KESS where UUID = 'b487-7';
-
- --删除所有数据,不会影响表结构,不会记录日志,数据不能恢复--》删除很快
- truncate table KESS;
-
-
- --删除所有数据,包括表结构一并删除,不会记录日志,数据不能恢复--》删除很快
- drop table KESS;
-
-
-
alter user test account unlock;
alter user sys identified by pswd12asd1a;
SELECT username, default_tablespace FROM dba_users;
select file_name,tablespace_name,bytes from dba_data_files;
select round(sum(bytes)/1024/1024/1024,2) as size_GB from dba_segments;
- select inst_id, resource_name, current_utilization, max_utilization, initial_allocation, limit_value
- from gv$resource_limit
- where resource_name in('processes','sessions')
- order by inst_id, resource_name;
- select inst_id, username, machine, module, program, service_name, count(*)
- from gv$session
- where type<>'BACKGROUND'
- and username not in ('SYS','PUBLIC','SYSRAC','DBSNMP')
- and status<>'KILLED'
- group by service_name, username, inst_id, machine, module, program
- order by service_name, username, inst_id, machine, module, program;
- SELECT
- SYS_CONTEXT('USERENV', 'LANG') AS LANG,
- SYS_CONTEXT('USERENV', 'LANGUAGE') AS LANGUAGE
- FROM
- dual;
- 1. 使用root用户通过SSH登录BIEE资料库服务器shell命令控制台
- 2. 切换到oracle用户下:
- #su - oracle
- 3. 使用数据库管理员连接oracle数据库:
- $sqlplus / as sysdba
- 4. 启动数据库:
- >startup
- 5. 退出数据库连接 :
- >exit
-
-
-
- 注:关闭数据库:
- 关闭监听服务:
- $lsnrctl stop
- 使用数据库管理员连接oracle数据库:
- $sqlplus / as sysdba
- 关闭数据库:
- >shutdown immediate
- 退出数据库连接 :
- >exit
-
-
-
- 6. 启动数据库监听:
- $lsnrctl start
- 7. 查看服务启动状态,看到以下回显信息,服务启动成功:
- $lsnrctl status
-
- sqlplus / as sysdba
-
- SELECT username, PROFILE FROM dba_users;
-
-
- 查看密码周期
- SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME';
-
-
-
- 修改为密码周期为不限制;
-
- alter profile default limit password_life_time unlimited;
-
-
-
- 6、如果已经提示:java.sql.SQLException: ORA-28001: 口令已经失效这样的错误,还需要修改一下密码,改为本密码就可以。
-
- alter user 用户名 identified by 旧密码;
-
-
-
- commit;
select owner,table_name from dba_tables where table_name='RENWEI';
- 定位问题
-
-
- 1、通过PID与v$process、v$session两张视图快速定位出语句的sql_id,如下:
-
-
- SQL> select sql_id from v$session where paddr= (select addr from v$process where spid ='29889');
- SQL_ID
- -------------
- 59vtwwcggzcwh
-
-
- 2、通过sql_id查看具体sql
-
-
- SQL> select sql_text from v$sql where sql_id='59vtwwcggzcwh';
- SQL_TEXT
- --------------------------------------------------------------------------------
- select * from scott.t3 where name=dbms_random.string('u', 10)
-
-
-
- --1、查看耗时SQL
-
- select *
-
- from (select v.sql_id,
-
- v.child_number,
-
- v.sql_text,
-
- v.elapsed_time,
-
- v.cpu_time,
-
- v.disk_reads,
-
- rank() over(order by v.elapsed_time desc) elapsed_rank
-
- from v$sql v) a
-
- where elapsed_rank <= 10;
-
- -- 2.查看CPU消耗时间最多的前10条SQL语句
-
- select *
-
- from (select v.sql_id,
-
- v.child_number,
-
- v.sql_text,
-
- v.elapsed_time,
-
- v.cpu_time,
-
- v.disk_reads,
-
- rank() over(order by v.cpu_time desc) elapsed_rank
-
- from v$sql v) a
-
- where elapsed_rank <= 10;
-
- --3.查看消耗磁盘读取最多的前10条SQL语句
-
- select *
-
- from (select v.sql_id,
-
- v.child_number,
-
- v.sql_text,
-
- v.elapsed_time,
-
- v.cpu_time,
-
- v.disk_reads,
-
- rank() over(order by v.disk_reads desc) elapsed_rank
-
- from v$sql v) a
-
- where elapsed_rank <= 10;
- SELECT
- S.TABLESPACE_NAME,
- S.CURSIZE AS "CURRENT_TBS_SIZE(MB)",
- TRUNC(NVL2(F.FREE, S.CURSIZE - F.FREE, S.CURSIZE)) AS "USED_SIZE(MB)",
- NVL(F.FREE, 0) AS "CURRENT_FREE_SIZE(MB)",
- CASE
- WHEN S.MAXSIZE - S.CURSIZE > 0 THEN
- S.MAXSIZE - S.CURSIZE
- ELSE
- 0
- END AS "EXTENSIBLE_FREE_SIZE(MB)",
- S.MAXSIZE AS "MAX_SIZE(MB)",
- LPAD(TO_CHAR(TRUNC(NVL2(F.FREE, S.CURSIZE - F.FREE, S.CURSIZE) * 100 / S.MAXSIZE)), 3, ' ')
- || '%' AS "PCT_USED"
- FROM
- (
- SELECT
- TABLESPACE_NAME,
- TRUNC(SUM(BYTES) / 1024 / 1024) AS CURSIZE,
- TRUNC(SUM(
- CASE
- WHEN(MAXBYTES < BYTES
- OR MAXBYTES IS NULL
- OR AUTOEXTENSIBLE = 'NO') THEN
- BYTES
- ELSE
- MAXBYTES
- END
- ) / 1024 / 1024) AS MAXSIZE
- FROM
- DBA_DATA_FILES
- GROUP BY
- TABLESPACE_NAME
- UNION ALL
- SELECT
- TABLESPACE_NAME,
- TRUNC(SUM(BYTES) / 1024 / 1024) AS CURSIZE,
- TRUNC(SUM(
- CASE
- WHEN(MAXBYTES < BYTES
- OR MAXBYTES IS NULL
- OR AUTOEXTENSIBLE = 'NO') THEN
- BYTES
- ELSE
- MAXBYTES
- END
- ) / 1024 / 1024) AS MAXSIZE
- FROM
- DBA_TEMP_FILES
- GROUP BY
- TABLESPACE_NAME
- ) S,
- (
- SELECT
- TABLESPACE_NAME,
- TRUNC(SUM(BYTES) / 1024 / 1024) AS FREE
- FROM
- DBA_FREE_SPACE
- GROUP BY
- TABLESPACE_NAME
- ) F
- WHERE
- F.TABLESPACE_NAME (+) = S.TABLESPACE_NAME
- ORDER BY
- 7 DESC;
1.查看管理理员目录
select * from dba_directories;
2.赋于要导出数据表的所属用户权限
sql>grant read,write on directory dpdata1 to RENWEI;
3.备份 :RENWEI
expdp system/passwd123@orcl directory=PUMP_DIR dumpfile=RENWEI20221008.dmp logfile=RENWEI20221008.log schemas=RENWEI
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。