ORACLE数据库信息查询语句

合集下载

oracle版本查询语句

oracle版本查询语句

oracle版本查询语句Oracle是一种非常流行的关系型数据库管理系统,它是许多企业和组织选择的数据管理解决方案。

在Oracle中,有时需要查询数据库版本来确认建立数据库与应用程序之间的兼容性。

下面是Oracle版本查询语句的中文版本:SELECT * FROM V$VERSION上述查询语句是Oracle中用于查询版本信息的标准查询语句,它可以返回包括Oracle数据库版本号和其他有关数据库的版本信息。

在执行查询前,需要以系统管理员身份登录Oracle数据库,使用system或sys等具有管理员权限的用户进行登录。

完整的查询语句如下:1.以管理员身份登录Oracle数据库。

2.在Oracle SQL Developer 或者SQL*Plus中打开SQL命令行窗口。

3.在SQL命令行窗口中输入以下查询语句:4.在查询结果中,您可以看到所有Oracle数据库的版本信息。

5.如果您只需要查看主版本号和次版本号,可以使用以下查询语句:SELECT banner FROM v$version WHERE rownum = 1;6.这将返回类似“Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production”这样的信息字符串,其中11.2.0.4是版本号的主版本号和次版本号。

除此之外,还有其他的一些查询Oracle版本的方法:这可以返回包括Oracle数据库版本号和其他版本信息的详细列表。

这可以返回包括Oracle数据库实例信息的列表,例如实例名称和启动时间。

其中还可以查看数据库的版本信息,如下所示:这将返回版本信息字符串,例如“11.2.0.4.0”。

注意事项:需要注意的是,在使用以上查询语句进行Oracle版本查询时,需要以系统管理员身份登录Oracle数据库。

否则,可能无法执行查询或无法访问需要的信息。

此外,在执行查询前,请确保您对Oracle数据库的版本信息有一些基本的了解。

oracle查询数据库版本语句

oracle查询数据库版本语句

oracle查询数据库版本语句Oracle是一种关系型数据库管理系统,提供了多种查询数据库版本的方法。

以下是使用Oracle语句查询数据库版本的示例。

1. 查询数据库版本号:```sqlSELECT version FROM v$instance;```该语句从系统视图v$instance中检索数据库的版本号。

2. 查询数据库详细版本信息:```sqlSELECT * FROM v$version;```这个查询语句将显示与Oracle数据库服务器版本相关的详细信息,包括版本号、版本名称和版本发布日期等。

3. 查询数据库产品信息:```sqlSELECT * FROM product_component_version;```该语句将返回包括Oracle数据库版本、组件版本和平台信息等在内的数据库产品信息。

4. 查询数据库平台名称:```sqlSELECT platform_name FROM v$database;```这个查询语句将返回Oracle数据库所运行的平台名称,如Windows、Linux等。

5. 查询数据库启动时间:```sqlSELECT startup_time FROM v$instance;```该语句将返回数据库实例的启动时间。

6. 查询数据库运行时间:```sqlSELECT SYSDATE - startup_time AS "Database Uptime" FROM v$instance;```这个查询语句将返回数据库的运行时间,即当前时间与数据库启动时间的差值。

7. 查询数据库的NLS参数:```sqlSELECT * FROM nls_database_parameters;```该语句将返回数据库的NLS参数,包括字符集、日期格式等信息。

8. 查询数据库的字符集:```sqlSELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';```这个查询语句将返回数据库的字符集。

oracle查询10条数据的sql语句

oracle查询10条数据的sql语句

oracle查询10条数据的sql语句Oracle 数据库是当今世界上最流行的数据库系统之一、它提供了高度安全性和完整的事务管理,以及可扩展性,跨平台和可控性等特点。

为了从 Oracle 数据库中检索数据,我们需要用到 SQL 语句。

SQL 语句是结构化查询语言的缩写,它是一个标准化的语言,用于管理和处理数据库。

在这篇文章中,我们将学习如何从 Oracle 数据库中查询前10条数据的SQL 语句。

在 Oracle 中,我们使用 SELECT 语句来检索数据。

它的基本语法如下:SELECT column1, column2, column3, ... FROM table_name;。

在这里,column1,column2,column3是我们要检索的列,而table_name是我们要检索数据的表。

但是,如果我们只想检索前10条记录,我们需要使用ROWNUM(行号)。

ROWNUM 是 Oracle 中的一个伪列,它表示查询返回的结果集中的行号。

下面是它的基本语法:SELECT column1, column2, ... FROM table_name WHERE ROWNUM <= 10;。

在这里,我们使用WHERE子句来限制检索的行数,仅返回前10行数据。

我们可以使用ORDERBY来排序结果集中的行,如下所示:SELECT column1, column2, ... FROM table_name WHERE ROWNUM <= 10 ORDER BY column_name ASC,DESC;。

这个语句将返回前10行已经按列名排序的数据,ASC表示升序排列,DESC表示降序排列。

如果你想从多个表中检索前10条记录,你可以使用JOIN语句,如下所示:SELECT column1, column2, ... FROM table1 JOIN table2 ON condition WHERE ROWNUM <= 10 ORDER BY column_name ASC,DESC;。

oracle查询数据库语句

oracle查询数据库语句

oracle查询数据库语句
【原创版】
目录
1.Oracle 查询数据库语句概述
2.Oracle 查询数据库的基本语法
3.Oracle 查询数据库的高级特性
4.Oracle 查询数据库的示例
正文
【Oracle 查询数据库语句概述】
Oracle 是一款广泛使用的关系型数据库管理系统,其强大的查询功能可以帮助用户快速检索和分析数据。

Oracle 查询数据库语句是实现这些功能的关键,可以让用户从数据库中获取所需的信息。

【Oracle 查询数据库的基本语法】
Oracle 查询数据库的基本语法包括以下几个要素:
1.SELECT:用于查询数据
2.FROM:指定数据来源
3.WHERE:设置查询条件
4.ORDER BY:排序查询结果
5.LIMIT:限制查询结果数量
6.DISTINCT:去除重复记录
以下是一个 Oracle 查询数据库的基本语法示例:
```
SELECT column1, column2
FROM table_name
WHERE condition
ORDER BY column_name
LIMIT number
```
【Oracle 查询数据库的高级特性】
除了基本的查询语法,Oracle 还支持一些高级特性,例如:
1.子查询:在查询中嵌套另一个查询
2.聚合函数:对查询结果进行统计汇总
3.连接:多个表之间的查询
4.视图:基于查询结果创建虚拟表
【Oracle 查询数据库的示例】
假设有一个名为“employees”的表,包含以下字段:id, name, salary, department。

oracle数据库语句汇总

oracle数据库语句汇总

oracle数据库语句汇总在Oracle数据库中,有许多常用的SQL语句可以用于查询、插入、更新和删除数据。

下面列举了一些常见的Oracle数据库语句,以供参考。

1. 查询表中的所有数据:```SELECT * FROM 表名;```2. 查询表中的特定字段数据:```SELECT 字段1, 字段2, ... FROM 表名;```3. 查询表中满足特定条件的数据:```SELECT * FROM 表名 WHERE 条件;```4. 对查询结果进行排序:```SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;```5. 对查询结果进行分组:```SELECT 字段1, 字段2, ... FROM 表名 GROUP BY 字段;```6. 对查询结果进行统计:```SELECT COUNT(*) FROM 表名;```7. 插入数据到表中:```INSERT INTO 表名(字段1, 字段2, ...) VALUES (值1, 值2, ...);```8. 更新表中的数据:```UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;9. 删除表中的数据:```DELETE FROM 表名 WHERE 条件;```10. 创建新表:```CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型,...);```11. 修改表结构:```ALTER TABLE 表名 ADD (字段数据类型); ```12. 删除表:DROP TABLE 表名;```13. 创建索引:```CREATE INDEX 索引名 ON 表名 (字段);```14. 删除索引:```DROP INDEX 索引名;```15. 创建视图:```CREATE VIEW 视图名 AS SELECT * FROM 表名 WHERE 条件; ```16. 删除视图:```DROP VIEW 视图名;17. 创建存储过程:```CREATE PROCEDURE 存储过程名ISBEGIN-- 存储过程的具体逻辑END;```18. 调用存储过程:```EXEC 存储过程名;```以上是一些常见的Oracle数据库语句,可以满足大部分基本的数据操作需求。

oracle数据库常用语句大全

oracle数据库常用语句大全

Oracle数据库是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。

以下是Oracle数据库常用的一些SQL语句:SELECT:查询语句,用于从一个或多个表中检索数据。

例如:sqlSELECT column1, column2 FROM table_name;INSERT:插入语句,用于向表中插入新记录。

例如:sqlINSERT INTO table_name (column1, column2) VALUES (value1, value2);UPDATE:更新语句,用于修改表中的数据。

例如:sqlUPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;DELETE:删除语句,用于从表中删除记录。

例如:sqlDELETE FROM table_name WHERE condition;CREATE TABLE:创建表语句,用于创建新的数据库表。

例如:scssCREATE TABLE table_name (column1 datatype, column2 datatype, ...);ALTER TABLE:修改表语句,用于添加、删除或修改表中的列。

例如:sqlALTER TABLE table_name ADD column_name datatype;ALTER TABLE table_name DROP COLUMN column_name;ALTER TABLE table_name MODIFY COLUMN column_name datatype; WHERE:条件语句,用于在查询中过滤数据。

例如:sqlSELECT * FROM table_name WHERE condition;GROUP BY:分组语句,用于将查询结果分组。

在使用GROUP BY时,SELECT子句中的列表中的所有个体值(除聚组函数avg、count等外)必须是GROUP BY子句中的表达式或常量。

oracle查询数据库名称的语句

oracle查询数据库名称的语句

oracle查询数据库名称的语句在Oracle数据库中,可以使用多种方法查询数据库名称。

以下是一些常用的查询方法:1. 使用全局数据字典视图:在Oracle数据库中,可以使用全局数据字典视图来查询数据库名称。

全局数据字典视图存储了关于数据库实例和对象的元数据信息。

具体的查询语句如下:```SELECT nameFROM v$database;```这将返回数据库的名称。

2. 使用系统表:Oracle数据库还提供了一些系统表,可以通过这些系统表查询数据库名称。

其中,`v$database`表和`v$instance`表是常用的。

```SELECT nameFROM v$database;```或```SELECT nameFROM v$instance;```这两个查询都可以返回数据库的名称。

3. 使用SQL*Plus命令:如果在Oracle数据库中使用SQL*Plus命令行工具,可以通过以下命令来查询数据库名称:```SELECT ora_database_nameFROM dual;```这将从`dual`表中返回数据库的名称。

4. 使用特殊的行属性:在Oracle数据库中,可以使用`SELECT`语句的`FROM`子句中的特殊行属性来查询数据库名称。

```SELECT*FROMtable(sys_context('userenv','con_name'));```这将返回数据库的名称。

总结起来,查询Oracle数据库名称的方法有很多种,包括使用全局数据字典视图、系统表、SQL*Plus命令和特殊的行属性等。

根据实际情况选择合适的方法来查询数据库名称。

oracle 查询表的几种方法

oracle 查询表的几种方法

标题:Oracle查询表的几种方法随着大数据时代的到来,数据库查询成为了日常工作中必不可少的一部分。

在Oracle数据库中,查询表是我们使用频率最高的操作之一。

本文将介绍Oracle查询表的几种方法,帮助读者更好地理解和应用Oracle数据库。

一、使用SELECT语句查询单个表在Oracle数据库中,通过使用SELECT语句可以查询单个表的数据。

SELECT语句的基本语法如下:SELECT column1, column2, ...FROM table_nameWHERE condition;其中,column1, column2表示要查询的列名,table_name表示表名,condition表示查询条件。

二、使用JOIN语句查询多个表在实际应用中,我们经常需要同时查询多个表的数据。

这时可以使用JOIN语句来实现。

在Oracle数据库中,JOIN语句有多种类型,包括INNER JOIN、LEFT JOIN、RIGHT JOIN等,根据实际需求选择合适的JOIN类型。

JOIN语句的基本语法如下:SELECT column1, column2, ...FROM table1INNER JOIN table2 ON condition;其中,table1、table2表示要查询的表名,condition表示连接条件。

三、使用子查询查询表有时候我们需要在查询语句中嵌套查询,这时可以使用子查询来实现。

子查询是指在一个查询语句中嵌套另一个查询语句,将子查询的结果作为外层查询的条件使用。

子查询的基本语法如下:SELECT column1, column2, ...FROM table_nameWHERE column1 IN (SELECT column1 FROM another_table);四、使用EXISTS子查询查询表除了常规的子查询外,Oracle数据库还支持EXISTS子查询。

EXISTS子查询是一种特殊的子查询,用来判断子查询中是否存在符合条件的数据,如果存在则返回TRUE,否则返回FALSE。

oracle 数据库查询前十条语句

oracle 数据库查询前十条语句

一、引言在进行数据库查询时,查询前十条数据是一个常见的需求。

无论是在开发中调试程序,还是在生产环境下排查问题,查询前十条数据都是非常有用的。

本文将介绍如何使用Oracle数据库进行查询前十条数据的方法。

二、使用ROWNUM进行查询在Oracle数据库中,可以使用ROWNUM来实现查询前十条数据的功能。

ROWNUM是Oracle中的一个伪列,它表示返回的结果集中行的行号。

可以通过ROWNUM来筛选出前十条数据。

1. 查询语句示例```sqlSELECT * FROM table_name WHERE ROWNUM <= 10;```2. 示例解释上面的查询语句中,通过使用ROWNUM来筛选出行号小于等于10的数据,即返回前十条数据。

3. 注意事项在使用ROWNUM进行查询时,需要注意以下几点:- ROWNUM是在结果集返回之后才分配的行号,因此必须在WHERE 子句中使用它进行筛选,否则会得到不符合预期的结果。

- 当查询语句中包含ORDER BY子句时,需要先对数据进行排序,然后再使用ROWNUM进行筛选。

三、使用子查询进行查询除了使用ROWNUM进行查询外,还可以通过子查询的方式来实现查询前十条数据的功能。

1. 查询语句示例```sqlSELECT * FROM (SELECT * FROM table_name ORDER BY column_name) WHERE ROWNUM <= 10;```2. 示例解释上面的查询语句中,首先对数据进行排序,然后再使用ROWNUM进行筛选,返回排在前十位的数据。

3. 注意事项使用子查询进行查询前十条数据时,需要注意以下几点:- 子查询的结果集是一个临时表,因此可以在外层查询中对其进行进一步的筛选和排序。

- 在子查询中可以通过ORDER BY进行排序,然后在外层查询中使用ROWNUM进行筛选。

四、使用FETCH FIRST进行查询在Oracle 12c及以上的版本中,可以使用FETCH FIRST来实现查询前十条数据的功能。

oracle 查询历史执行语句

oracle 查询历史执行语句

一、概述Oracle数据库是一款实现了高度可靠性、容错性、安全性以及并发性的关系数据库管理系统。

在日常数据库管理过程中,经常需要查询数据库历史执行语句,以便进行性能优化、故障诊断等工作。

本文将介绍如何在Oracle数据库中查询历史执行语句的方法。

二、通过V$SQL和V$SQLAREA视图查询历史执行语句1. V$SQL和V$SQLAREA视图是Oracle数据库中存储SQL语句信息的系统视图,其中包含了数据库中所有执行的SQL语句的信息,包括SQL语句的文本、执行计划、执行次数等。

2. 通过查询V$SQL和V$SQLAREA视图,可以获取到数据库中的历史执行语句信息,以便进行分析和优化。

3. 查询V$SQL和V$SQLAREA视图的SQL语句如下所示:```sqlSELECT SQL_TEXT, EXECUTIONS, ELAPSED_TIMEFROM V$SQLWHERE SQL_TEXT LIKE 'your_sql_text';SELECT SQL_TEXT, EXECUTIONS, ELAPSED_TIMEFROM V$SQLAREAWHERE SQL_TEXT LIKE 'your_sql_text';```其中,SQL_TEXT表示SQL语句的文本内容,EXECUTIONS表示SQL语句的执行次数,ELAPSED_TIME表示SQL语句的执行时间。

4. 通过以上SQL语句,可以获取到数据库中包含"your_sql_text"文本的历史执行语句信息,以便进行分析和优化。

三、通过AWR报告查询历史执行语句1. AWR是Oracle数据库的性能分析工具,可以生成包含数据库性能信息的报告,其中包括了数据库中执行的SQL语句的信息。

2. 通过查询AWR报告,可以获取到数据库中的历史执行语句信息,以便进行性能分析和优化。

3. 查询AWR报告的SQL语句如下所示:```sqlSELECT SQL_ID, PLAN_HASH_VALUE, SQL_TEXT, EXECUTIONS, ELAPSED_TIMEFROM DBA_HIST_SQLTEXTWHERE SQL_TEXT LIKE 'your_sql_text'AND EXECUTIONS > 0;```其中,SQL_ID表示SQL语句的ID,PLAN_HASH_VALUE表示SQL语句的执行计划的HASH值,SQL_TEXT表示SQL语句的文本内容,EXECUTIONS表示SQL语句的执行次数,ELAPSED_TIME表示SQL 语句的执行时间。

oracle数据库查询语句

oracle数据库查询语句

SELECT [ALL | DISTINCT] [selec_columns | *] FROM table_name[WHERE search_condition][GROUP BY columns][HAVING search_condition][ORDER BY columns [ASC | DESC]](1)SELECT:查询关键字,用于选择查询的列。

(2)[ALL | DISTINCT]:用于标识查询结果集中相同数据的处理方式,all关键字表示显示查询到的所有数据,包括重复的行;DISTINCT关键字表示查询数据中的重复行只显示一次。

(3)selec_columns:表示要查询的列,列名之间使用逗号隔开,如果需要查询表中所有的列可直接用“*”表示。

(4)WHERE search_condition:指定查询操作的条件,只有符合条件的数据才会被查询出来。

(5)GROUP BY columns:用于设置分组查询的列。

(5)HAVING search_condition:用于设置分组的条件,需要与GROUP BY语句结合使用。

(6)ORDER BY columns [ASC | DESC]:用于指定结果集的排序方式,ASC为升序,DESC为降序,默认ASC升序。

1、基本查询2.条件语句查询3、模糊查询在实际应用中如果不能完全确定查询的条件,但是又了解这些条件的某些特征,就可以通过模糊查询来解决问题,在where子句中可以使用like或not like编写模糊查询的条件实现模糊查询需要用到两个通配符,分别为“%”与“_”(1)%:表示零个、一个或多个任意字符。

(2)_:表示一个任意字符。

4、排序查询如果希望对查询的结果进行排序,就需要使用order by子句,order by子句可以将查询的结果按照升序或者降序进行排列5、分组查询使用GROUP BY子句与HAVING子句实现,GROUP BY子句用于指定分组的列,HAVING语句用于指定分组的条件6、其他查询a、DISTINCT取消重复行b、列的别名7、子查询a、单行子查询执行数据库操作时,如果某个操作希望依赖于另外一个SELECT语句的查询结果,那么就可以在操作中嵌入SELECT语句,当查询操作中嵌入了SELECT语句后,就形成了一个子查询。

oracle常用语句大全

oracle常用语句大全

oracle常用语句大全以下是一些Oracle数据库中常用的SQL语句,涵盖了查询、插入、更新、删除、创建表等基本数据库操作。

请注意,具体的语句可能因数据库结构和需求而有所不同。

查询数据:查询所有数据:SELECT * FROM table_name;条件查询:SELECT column1, column2 FROM table_name WHERE condition;排序查询:SELECT * FROM table_name ORDER BY column_name;聚合函数(求和、平均值等):SELECT AVG(column_name) FROM table_name;分组查询:SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;插入数据:插入一行数据:INSERT INTO table_name (column1, column2) VALUES (value1, value2);更新数据:更新数据:UPDATE table_name SET column1 = value1 WHERE condition;删除数据:删除数据:DELETE FROM table_name WHERE condition;创建表:创建表:CREATE TABLE table_name (column1 datatype, column2 datatype);主键约束:CREATE TABLE table_name (column1 datatype PRIMARY KEY, column2 datatype);修改表结构:添加列:ALTER TABLE table_name ADD column_name datatype;修改列:ALTER TABLE table_name MODIFY column_name datatype;删除表:删除表:DROP TABLE table_name;索引:创建索引:CREATE INDEX index_name ON table_name (column_name);删除索引:DROP INDEX index_name;连接表:内连接:SELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;外连接:SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;子查询:单行子查询:SELECT column_name FROM table_name WHERE column_name = (SELECT column_name FROM another_table);多行子查询:SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM another_table);视图:创建视图:CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;序列:创建序列:CREATE SEQUENCE sequence_name START WITH 1 INCREMENT BY 1;事务控制:开始事务:START TRANSACTION;提交事务:COMMIT;回滚事务:ROLLBACK;权限管理:授权:GRANT SELECT ON table_name TO user_name;撤销权限:REVOKE SELECT ON table_name FROM user_name;函数和存储过程:创建函数:CREATE FUNCTION function_name (parameters) RETURNS datatype AS BEGIN ... END;创建存储过程:CREATE PROCEDURE procedure_name AS BEGIN ... END;触发器:创建触发器:CREATE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN ... END;同义词:创建同义词:CREATE SYNONYM synonym_name FOR table_name;数据类型转换:TO_CHAR:SELECT TO_CHAR(date_column, 'MM/DD/YYYY') FROM table_name;TO_NUMBER:SELECT TO_NUMBER(char_column) FROM table_name;TO_DATE:SELECT TO_DATE(char_column, 'MM/DD/YYYY') FROM table_name;时间和日期函数:CURRENT_DATE:SELECT CURRENT_DATE FROM dual;SYSDATE:SELECT SYSDATE FROM dual;MONTHS_BETWEEN:SELECT MONTHS_BETWEEN(date1, date2) FROM table_name;存储空间管理:表空间大小查询:SELECT tablespace_name, SUM(bytes) FROM dba_free_space GROUP BY tablespace_name;分页查询:分页查询:SELECT * FROM (SELECT column1, column2, ROWNUM FROM table_name WHERE ROWNUM <= 10) WHERE ROWNUM >= 1;复杂条件查询:CASE语句:SELECT column1, column2, CASE WHEN condition THEN 'Result1' ELSE 'Result2' END FROM table_name;外部表导入导出:外部表导入:COPY FROM username/password@database_name - TO username/password@database_name CREATE table_name USING SELECT * FROM external_table_name;字符串函数:字符串拼接:SELECT CONCAT(string1, string2) FROM table_name;字符串长度:SELECT LENGTH(string_column) FROM table_name;字符串转小写:SELECT LOWER(string_column) FROM table_name;正则表达式:正则表达式匹配:SELECT * FROM table_name WHERE REGEXP_LIKE(column_name, 'pattern');字符串截取:SUBSTR:SELECT SUBSTR(string_column, start_position, length) FROM table_name;数据导入导出:数据导入:LOAD DATA INFILE 'file_path' INTO TABLE table_name;数据导出:SELECT * INTO OUTFILE 'file_path' FROM table_name;数据库连接:连接数据库:CONNECT username/password@database_name;显示表结构:查看表结构:DESC table_name;数据库备份与还原:数据库备份:exp username/password@database_name file=backup.dmp;数据库还原:imp username/password@database_name file=backup.dmp fromuser=username touser=username;数据库性能优化:分析执行计划:EXPLAIN PLAN FOR SELECT * FROM table_name;清空表数据:清空表数据:DELETE FROM table_name;条件删除:条件删除:DELETE FROM table_name WHERE。

oracle的sql语句

oracle的sql语句

oracle的sql语句Oracle的SQL语句可以用于查询、插入、更新和删除数据库中的数据。

以下是一些常见的Oracle SQL语句示例:1. 查询数据:- 查询所有记录:SELECT * FROM 表名;- 查询指定列:SELECT 列名1, 列名2 FROM 表名;- 带条件查询:SELECT * FROM 表名 WHERE 条件;- 排序查询:SELECT * FROM 表名 ORDER BY 列名ASC/DESC;- 分组查询:SELECT 列名, COUNT(*) FROM 表名GROUP BY 列名;2. 插入数据:- 插入单条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);- 插入多条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2), (值3, 值4), ...;3. 更新数据:- 更新单个字段:UPDATE 表名 SET 列名 = 新值WHERE 条件;- 更新多个字段:UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;4. 删除数据:- 删除所有记录:DELETE FROM 表名;- 删除满足条件的记录:DELETE FROM 表名 WHERE 条件;5. 聚合函数:- 计算总数:SELECT COUNT(*) FROM 表名;- 计算平均值:SELECT AVG(列名) FROM 表名;- 计算最大值:SELECT MAX(列名) FROM 表名;- 计算最小值:SELECT MIN(列名) FROM 表名;- 计算求和:SELECT SUM(列名) FROM 表名;这些只是一些常见的Oracle SQL语句示例,实际使用中还可以结合其他语句和函数进行更复杂的查询和操作。

oracle数据库查询用户语句

oracle数据库查询用户语句

oracle数据库查询用户语句如何查询Oracle数据库中的用户。

想要查询Oracle数据库中的用户,我们可以使用一系列的SQL语句和命令来完成这项任务。

本文将详细介绍如何使用不同的方法查询Oracle数据库中的用户。

首先,我们需要登录到Oracle数据库。

可以使用命令行工具,如SQLPlus 或者SQL Developer登录。

一、使用SQL语句查询所有用户我们可以使用以下SQL语句来查询数据库中的所有用户:SELECT username FROM all_users;这条语句将返回数据库中所有用户的用户名。

二、使用系统视图查询用户Oracle数据库提供了许多系统视图,我们可以使用它们来查询用户信息。

以下是一些常用的系统视图及其用途:1. DBA_USERS:此视图包含了所有用户的信息,包括用户名、创建日期、过期日期等。

SELECT username, created, expiry_date FROM dba_users;这条语句将返回所有用户的用户名、创建日期和过期日期。

2. ALL_USERS:该视图包含了数据库中所有可访问的用户的信息。

SELECT username, created, expiry_date FROM all_users;这条语句将返回所有可访问的用户的用户名、创建日期和过期日期。

3. USER_USERS:这个视图包含了当前用户的信息。

SELECT username, created, expiry_date FROM user_users;这条语句将返回当前用户的用户名、创建日期和过期日期。

三、查询特定用户信息如果我们想查询特定用户的信息,可以使用以下SQL语句:SELECT username, created, expiry_date FROM dba_users WHEREusername = 'username';这条语句将返回指定用户名的用户的用户名、创建日期和过期日期。

oracle数据库版本查询语句

oracle数据库版本查询语句

oracle数据库版本查询语句Oracle数据库是业内一款非常流行的关系型数据库管理系统,它提供了许多丰富的功能和工具,可以帮助企业进行高效可靠的数据管理。

在使用Oracle数据库时,了解数据库版本信息是非常重要的,因为不同版本的数据库具有不同的功能和性能优化。

本文主要介绍如何使用Oracle SQL查询语句来查看当前数据库的版本信息。

一、查看Oracle数据库版本信息的方式Oracle数据库有多种版本信息,包括软件版本、内核版本、组件版本等。

这些版本信息都可以通过Oracle SQL 查询语句来获取。

下面列举了几种常用的查看Oracle数据库版本信息的方式:1、通过SQL命令行查看在Oracle SQL命令行下输入命令“select * fromv$version;”即可查看当前数据库的版本信息。

2、通过SQL Developer查看在SQL Developer工具中,点击菜单栏的“帮助” -> “关于”可以查看当前Oracle数据库的版本信息。

3、通过Oracle Enterprise Manager查看在Oracle Enterprise Manager(OEM)中,点击顶部菜单栏的“源” -> “目标” -> “数据库” -> “数据库名称” -> “监控” -> “概况”即可查看当前数据库的版本信息。

4、通过tnsping命令查看在命令提示符下输入命令“tnsping 数据库名称”,即可查看当前数据库的版本信息。

其中,“数据库名称”指的是Oracle数据库的服务名或SID。

二、使用SQL查询语句查看Oracle数据库版本信息以上几种方式都可以查看Oracle数据库的版本信息,但最常用的方式还是使用SQL查询语句来实现。

下面介绍一些常用的Oracle SQL查询语句:1、查看Oracle数据库软件版本信息select * from product_component_version where product like 'Oracle%';这条SQL语句可以查询当前Oracle数据库的软件版本信息,包括主版本号、副版本号等。

python对oracle数据库查询语句

python对oracle数据库查询语句

python对oracle数据库查询语句Python是一种功能强大的编程语言,可以用于与Oracle数据库进行交互,并执行各种查询操作。

在本文中,我将列举10个Python 对Oracle数据库查询语句的示例,并详细解释每个查询的功能和使用方法。

1. 查询数据库版本信息```pythonimport cx_Oracle# 连接数据库conn = cx_Oracle.connect('username/password@hostname:port/servi ce_name')# 创建游标cursor = conn.cursor()# 执行查询cursor.execute("SELECT * FROM v$version")# 获取结果result = cursor.fetchone()print(result)# 关闭游标和连接cursor.close()conn.close()```以上代码通过查询`v$version`视图获取Oracle数据库的版本信息,并打印结果。

2. 查询表的结构信息```pythonimport cx_Oracle# 连接数据库conn = cx_Oracle.connect('username/password@hostname:port/servi ce_name')# 创建游标cursor = conn.cursor()# 执行查询cursor.execute("SELECT column_name, data_type FROM all_tab_columns WHERE table_name = 'table_name'")# 获取结果result = cursor.fetchall()for row in result:print(row)# 关闭游标和连接cursor.close()conn.close()```以上代码通过查询`all_tab_columns`视图获取指定表的列名和数据类型信息,并打印结果。

oracle查询表结构sql语句

oracle查询表结构sql语句

oracle查询表结构sql语句1. 查询表结构的SQL语句在Oracle数据库中,可以使用以下SQL语句查询表的结构信息:1.1. 查询所有表的结构```SELECT owner, table_name, column_name, data_type, data_length, nullableFROM all_tab_columnsORDER BY owner, table_name, column_id;```该语句会返回所有表的所有列的结构信息,包括所属用户(owner)、表名(table_name)、列名(column_name)、数据类型(data_type)、数据长度(data_length)和是否可为空(nullable)等。

1.2. 查询指定表的结构```SELECT column_name, data_type, data_length, nullableFROM all_tab_columnsWHERE owner = 'SCHEMA_NAME' AND table_name = 'TABLE_NAME' ORDER BY column_id;```将上述语句中的'SCHEMA_NAME'替换为要查询表所属的用户,'TABLE_NAME'替换为要查询的表名,可以获取指定表的结构信息。

1.3. 查询表的主键信息```SELECT cols.table_name, cols.column_name, cons.constraint_nameFROM all_constraints cons, all_cons_columns colsWHERE cons.constraint_type = 'P'AND cons.constraint_name = cols.constraint_nameAND cons.owner = cols.ownerAND cols.table_name = 'TABLE_NAME'AND cols.owner = 'SCHEMA_NAME';```将上述语句中的'SCHEMA_NAME'替换为要查询表所属的用户,'TABLE_NAME'替换为要查询的表名,可以获取指定表的主键信息。

oracle查询sid的语句

oracle查询sid的语句

oracle查询sid的语句Oracle是一种关系型数据库管理系统,可以通过查询语句来检索和获取所需的数据。

在Oracle中,可以使用不同的查询语句来获取SID(System Identifier)信息。

下面是一些列举出来的查询语句,用于获取Oracle数据库的SID信息。

1. 使用V$INSTANCE视图查询SID:```SELECT INSTANCE_NAME, INSTANCE_NUMBERFROM V$INSTANCE;```通过查询V$INSTANCE视图,可以获取当前数据库实例的名称(INSTANCE_NAME)和实例编号(INSTANCE_NUMBER)等信息。

2. 使用V$DATABASE视图查询SID:```SELECT NAME, DBIDFROM V$DATABASE;```通过查询V$DATABASE视图,可以获取当前数据库的名称(NAME)和数据库ID(DBID)等信息。

3. 使用V$THREAD视图查询SID:```SELECT THREAD#, NAMEFROM V$THREAD;```通过查询V$THREAD视图,可以获取当前数据库的线程号(THREAD#)和线程名称(NAME)等信息。

4. 使用SELECT语句查询SID:```SELECT SYS_CONTEXT('USERENV', 'SID') AS SIDFROM DUAL;```通过使用SYS_CONTEXT函数查询用户环境变量(USERENV)中的SID信息,可以获取当前会话的SID。

5. 使用查看数据库参数查询SID:```SHOW PARAMETER SID;```通过使用SHOW PARAMETER命令,可以查看数据库参数中的SID信息。

6. 使用SELECT语句查询SID和SERIAL#:```SELECT SID, SERIAL#FROM V$SESSIONWHERE AUDSID = USERENV('SESSIONID');```通过查询V$SESSION视图,可以获取当前会话的SID和SERIAL#等信息。

oracle数据库查询语句 示例

oracle数据库查询语句 示例

oracle数据库查询语句示例当您提到“Oracle数据库查询语句示例”,您可能是指使用SQL语言查询Oracle数据库中的数据。

以下是一些常见的Oracle查询示例:1. 查询所有表名:```sqlSELECT table_name FROM user_tables;```2. 查询特定表中的所有数据:```sqlSELECT FROM table_name;```3. 查询满足特定条件的记录:```sqlSELECT FROM table_name WHERE condition;```4. 排序查询结果:```sqlSELECT FROM table_name ORDER BY column_name ASC/DESC; ```5. 分组查询结果:```sqlSELECT column1, COUNT() FROM table_name GROUP BY column1; ```6. 使用聚合函数计算总和、平均值等:```sqlSELECT SUM(column_name) FROM table_name WHERE condition; SELECT AVG(column_name) FROM table_name WHERE condition; ```7. 连接多个表:```sqlSELECT FROM table1 JOIN table2 ON _name = _name;```8. 使用子查询:```sqlSELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM another_table);```这些示例只是Oracle查询语言SQL的一些基本用法。

根据您的具体需求,查询语句可以更复杂和具体。

请注意,上述示例中的"table_name"和"column_name"应替换为您实际的表名和列名。

oracle 查看数据库的sql语句

oracle 查看数据库的sql语句

一、简介Oracle是一种关系型数据库管理系统(RDBMS),其广泛应用于企业级应用和数据管理中。

在Oracle数据库中,SQL语句是与数据库交互最常用的方式之一,通过SQL语句可以实现对数据库的查询、插入、更新、删除等操作。

在实际应用中,了解如何查看数据库的SQL 语句对于数据库管理员和开发人员来说至关重要。

二、 SQL语句的分类1. 查询语句(SELECT):用于查询数据库中的数据。

2. 插入语句(INSERT):用于向数据库中插入新的数据。

3. 更新语句(UPDATE):用于更新数据库中已有的数据。

4. 删除语句(DELETE):用于从数据库中删除数据。

5. 创建表语句(CREATE TABLE):用于创建新的数据表。

6. 删除表语句(DROP TABLE):用于删除已有的数据表。

7. 修改表结构语句(ALTER TABLE):用于修改数据表的结构。

三、查看已存在的SQL语句在Oracle数据库中,可以通过以下几种方式查看已存在的SQL语句:1. 查看数据库中的存储过程和函数:通过查询用户定义的存储过程和函数的元数据,可以获取其对应的SQL语句。

2. 查看数据库中的触发器:触发器是一种数据库对象,通过查询系统表可以查看触发器的定义语句。

3. 查看数据库中的视图:视图是虚拟的表,通过查询系统表可以获取视图的定义语句。

4. 查看数据库中的作业和调度:作业和调度是数据库中的定时任务,可以通过系统表获取其对应的SQL语句。

四、查看正在执行的SQL语句Oracle数据库提供了多种方式来查看当前正在执行的SQL语句:1. 使用动态性能视图:通过查看动态性能视图V$SQL和V$SQLAREA可以获取当前正在执行的SQL语句以及相关的执行计划、执行时间等信息。

2. 使用AWR报告:如果开启了AWR(自动工作负荷存储库)功能,可以通过AWR报告查看数据库在特定时间范围内执行的SQL语句和相关统计信息。

3. 使用SQL追踪工具:Oracle提供了SQL追踪工具,可以详细记录数据库中执行的SQL语句的执行计划、执行时间等信息,方便进行性能优化和故障排查。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库各个表空间增长情况的检查:SQL >SELECT A.TABLESPACE_NAME,(1 -(A.TOTAL)/B.TOTAL)* 100 USED_PERCENT FROM (SELECT TABLESPACE_NAME,SUM (BYTES) TOTAL FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME,SUM (BYTES) TOTAL FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) B WHEREA.TABLESPACE_NAME=B.TABLESPACE_NAME;SQL >SELECT UPPER(F.TABLESPACE_NAME) " 表空间名 ",D.TOT_GROOTTE_MB " 表空间大小 (M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES " 已使用空间 (M)" ,TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100 , 2 ), '990.99' ) " 使用比 ",F.TOTAL_BYTES" 空闲空间 (M) ",F.MAX_BYTES " 最大块 (M) " FROM (SELECT TABLESPACE_NAME,ROUND(SUM (BYTES) / ( 1024 * 1024 ), 2 ) TOTAL_BYTES,ROUND(MAX (BYTES) / ( 1024 * 1024 ), 2 ) MAX_BYTESFROM SYS .DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM (DD.BYTES) / ( 1024 * 1024 ), 2 ) TOT_GROOTTE_MB FROM SYS .DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME =F.TABLESPACE_NAMEORDER BY 4 DESC ;查看各个表空间占用磁盘情况 :SQL >COL TABLESPACE_NAME FORMAT A20;SQL >SELECT B.FILE_ID FILE_ID,B.TABLESPACE_NAME TABLESPACE_NAME,B.BYTES BYTES,(B.BYTES-SUM (NVL(A.BYTES,0))) USED,SUM (NVL(A.BYTES, 0 )) FREE,SUM (NVL(A.BYTES, 0 ))/(B.BYTES)* 100 PERCENTFROM DBA_FREE_SPACE A,DBA_DATA_FILES BWHERE A.FILE_ID=B.FILE_IDGROUP BY B.TABLESPACE_NAME,B.FILE_ID,B.BYTESORDER BY B.FILE_ID;数据库对象下一扩展与表空间的 free 扩展值的检查:SQL >SELECT A.TABLE_NAME, A.NEXT_EXTENT, A.TABLESPACE_NAMEFROM ALL_TABLES A,(SELECT TABLESPACE_NAME, MAX (BYTES) AS BIG_CHUNK FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME ) F WHEREF.TABLESPACE_NAME = A.TABLESPACE_NAME AND A.NEXT_EXTENT > F.BIG_CHUNK UNION SELECT A.INDEX_NAME, A.NEXT_EXTENT, A.TABLESPACE_NAMEFROM ALL_INDEXES A,(SELECT TABLESPACE_NAME, MAX (BYTES) AS BIG_CHUNK FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME ) F WHEREF.TABLESPACE_NAME = A.TABLESPACE_NAME AND A.NEXT_EXTENT > F.BIG_CHUNK;Disk Read 最高的 SQL 语句的获取:SQL >SELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BYDISK_READS)WHERE ROWNUM <=5;查找前十条性能差的 sqlSELECT * FROM (SELECT PARSING_USER_IDEXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC )WHERE ROWNUM <10;等待时间最多的 5 个系统等待事件的获取:SQL >SELECT * FROM (SELECT * FROM V$SYSTEM_EVENT WHERE EVENT NOT LIKE 'SQL%' ORDER BY TOTAL_WAITS DESC ) WHERE ROWNUM <= 5 ;查看当前等待事件的会话 :COL USERNAME FORMAT A10SET LINE 120COL EVENT FORMAT A30SELECTSE.SID,ERNAME,SE.EVENT,SE.TOTAL_WAITS,SE.TIME_WAITED,SE.AVERAGE_WAITFROM V$SESSION S,V$SESSION_EVENT SE WHERE ERNAME IS NOT NULL AND SE.SID=S.SIDAND S.STATUS='ACTIVE' AND SE.EVENT NOT LIKE '%SQL*NET%' ;SELECT SID, EVENT, P1, P2, P3, WAIT_TIME, SECONDS_IN_WAIT, STATE FROMV$SESSION_WAIT WHERE EVENT NOT LIKE '%MESSAGE%' AND EVENT NOTLIKE 'SQL*NET%' AND EVENT NOT LIKE '%TIMER%' AND EVENT != 'WAKEUP TIME MANAGER' ;找到与所连接的会话有关的当前等待事件:SELECT SW.SID,ERNAME,SW.EVENT,SW.WAIT_TIME,SW.STATE,SW.SECONDS_I N_WAIT SEC_IN_WAITFROM V$SESSION S,V$SESSION_WAIT SW WHERE ERNAME IS NOT NULL AND SW.SID=S.SIDAND SW.EVENT NOT LIKE '%SQL*NET%' ORDER BY SW.WAIT_TIME DESC ;Oracle 所有回滚段状态的检查:SQL>SELECTSEGMENT_NAME,OWNER,TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,DBA_ ROLLBACK_SEGS.STATUS FROM DBA_ROLLBACK_SEGS,V$DATAFILE WHEREFILE_ID=FILE #;Oracle 回滚段扩展信息的检查 :COL NAME FORMAT A10SET LINESIZE 140SELECT SUBSTR(NAME , 1 , 40 )NAME ,EXTENTS ,RSSIZE,OPTSIZE,AVEACTIVE,EXTENDS,WRAPS,SHRINKS,HWMSIZE FROM V$ROLLNAME RN,V$ROLLSTAT RS WHERE (N=N);EXTENTS : 回滚段中的盘区数量。

Rssize: 以字节为单位的回滚段的尺寸。

optsize :为 optimal 参数设定的值。

Aveactive: 从回滚段中删除盘区时释放的以字节为单位的平均空间的大小。

Extends: 系统为回滚段增加的盘区的次数。

Shrinks: 系统从回滚段中清除盘区(即回滚段收缩)的次数。

回滚段每次清除盘区时,系统可能会从这个回滚段中消除一个或多个盘区。

Hwmsize: 回滚段尺寸的上限,即回滚段曾经达到的最大尺寸。

( 如果回滚段平均尺寸接近 OPTIMAL 的值,那么说明 OPTIMAL 的值设置正确,如果回滚段动态增长次数或收缩次数很高,那么需要提高 OPTIMAL 的值 )查看回滚段的使用情况,哪个用户正在使用回滚段的资源 :SELECT ERNAME, FROM V$TRANSACTION T,V$ROLLSTAT R,V$ROLLNAME U,V$SESSION S WHERE S.TADDR=T.ADDR ANDT.XIDUSN=N AND N=N ORDER BY ERNAME;如何查看一下某个 shared_server 正在忙什么 :SELECT ERNAME,A.MACHINE,A.PROGRAM,A.SID,A.SERIAL#,A.STATUS,C.PIECE,C.SQL_TEXTFROM V$SESSION A,V$PROCESS B,V$SQLTEXT CWHERE B.SPID=13161AND B.ADDR=A.PADDRAND A.SQL_ADDRESS=C.ADDRESS(+) ORDER BY C.PIECE;数据库共享池性能检查 :SELECTNAMESPACE,GETS,GETHITRATIO,PINS,PINHITRATIO,RELOADS,INVALIDATIONS FROM V$LIBRARYCACHE WHERE NAMESPACE IN('SQLAREA' , 'TABLE/PROCEDURE' , 'BODY' , 'TRIGGER' );检查数据重载比率 :SELECT SUM (RELOADS)/SUM (PINS)*100"RELOAD RATIO" FROMV$LIBRARYCACHE;检查数据字典的命中率 :SELECT 1-SUM (GETMISSES)/SUM (GETS) "DATA DICTIONARY HITRATIO" FROM V$ROWCACHE;( 对于 library cache, gethitratio 和 pinhitratio 应该大于 90%, 对于数据重载比率 ,reload ratio 应该小于 1%, 对于数据字典的命中率,data dictionary hit ratio 应该大于 85%)检查共享内存的剩余情况 :SELECT REQUEST_MISSES, REQUEST_FAILURES FROMV$SHARED_POOL_RESERVED;( 对于共享内存的剩余情况 , request_misses 和 request_failures 应该接近 0)数据高速缓冲区性能检查 :SELECT 1 -P.VALUE /(B.VALUE +C.VALUE ) "DB BUFFER CACHE HIT RATIO" FROMV$SYSSTAT P,V$SYSSTAT B,V$SYSSTAT C WHERE = 'PHYSICAL READS' AND = 'DB BLOCK GETS' AND = 'CONSISTENT GETS' ;检查 buffer pool HIT_RATIO 执行SELECT NAME , (PHYSICAL_READS/(DB_BLOCK_GETS+CONSISTENT_GETS))"MISS_HIT_RATIO" FROM V$BUFFER_POOL_STATISTICS WHERE (DB_BLOCK_GETS+ CONSISTENT_GETS)> 0;( 正常时 db buffer cache hit ratio 应该大于 90%, 正常时 buffer pool MISS_HIT_RATIO 应该小于 10%)数据库回滚段性能检查:检查 Ratio 执行SELECT SUM (WAITS)* 100/SUM (GETS) "RATIO", SUM (WAITS) "WAITS", SUM (GETS) "GETS" FROM V$ROLLSTAT;检查 count/value 执行 :SELECT CLASS ,COUNT FROM V$WAITSTAT WHERE CLASS LIKE '%UNDO%'; SELECT VALUE FROM V$SYSSTAT WHERE NAME = 'CONSISTENT GETS' ;( 两者的 value 值相除 )检查 average_wait 执行 :SELECT EVENT,TOTAL_WAITS,TIME_WAITED,AVERAGE_WAIT FROMV$SYSTEM_EVENT WHERE EVENT LIKE '%UNDO%';检查 RBS header get ratio 执行 :SELECT ,N,S.WRAPS, DECODE(S.WAITS,0 , 1 , 1 - S.WAITS/S.GETS)"RBS HEADER GET RATIO" FROM V$ROLLSTAT S,V$ROLLNAME N WHERE N=N; ( 正常时 Ratio 应该小于 1%, count/value 应该小于 0.01%,average_wait 最好为 0 ,该值越小越好 ,RBS header get ratio 应该大于95%)杀会话的脚本 :SELECTA.SID,B.SPID,A.SERIAL#,A.LOCKWAIT,ERNAME,A.OSUSER,A.LOGON_TIME,S T_CALL_ET/3600LAST_HOUR,A.STATUS, 'ORAKILL ' ||SID|| ' ' ||SPIDHOST_COMMAND, 'ALTER SYSTEM KILL SESSION''' ||A.SID|| ','||A.SERIAL#|| '''' SQL_COMMAND FROM V$SESSION A,V$PROCESS B WHERE A.PADDR=B.ADDR AND SID> 6 ;查看排序段的性能 :SQL >SELECT NAME , VALUE FROM V$SYSSTAT WHERE NAME IN ('SORTS (MEMORY)' , 'SORTS (DISK)' );7 、查看数据库库对象 :SELECT OWNER, OBJECT_TYPE, STATUS, COUNT (*) COUNT # FROM ALL_OBJECTS GROUP BY OWNER, OBJECT_TYPE, STATUS;8 、查看数据库的版本 :SELECT * FROM V$VERSION;9 、查看数据库的创建日期和归档方式 :SELECT CREATED, LOG_MODE, LOG_MODE FROM V$DATABASE;10 、捕捉运行很久的 SQL:COLUMN USERNAME FORMAT A12COLUMN OPNAME FORMAT A16COLUMN PROGRESS FORMAT A8SELECT USERNAME,SID,OPNAME,ROUND(SOFAR*100 / TOTALWORK, 0 ) || '%' AS PROGRESS,TIME_REMAINING,SQL_TEXT FROM V$SESSION_LONGOPS , V$SQL WHERE TIME_REMAINING <> 0 AND SQL_ADDRESS=ADDRESS ANDSQL_HASH_VALUE = HASH_VALUE;11 、查看数据表的参数信息 :SELECT PARTITION_NAME, HIGH_VALUE, HIGH_VALUE_LENGTH, TABLESPACE_NAME,PCT_FREE, PCT_USED, INI_TRANS, MAX_TRANS, INITIAL_EXTENT,NEXT_EXTENT, MIN_EXTENT, MAX_EXTENT, PCT_INCREASE, FREELISTS ,FREELIST_GROUPS, LOGGING , BUFFER_POOL , NUM_ROWS, BLOCKS,EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN, SAMPLE_SIZE,LAST_ANALYZED FROM DBA_TAB_PARTITIONS--WHERE TABLE_NAME = :TNAME AND TABLE_OWNER = :TOWNERORDER BY PARTITION_POSITION;12 、查看还没提交的事务 :SELECT * FROM V$LOCKED_OBJECT;SELECT * FROM V$TRANSACTION;13 、查找 object 为哪些进程所用 :SELECT P.SPID,S.SID,S.SERIAL# SERIAL_NUM,ERNAME USER_NAME, A.TYPE OBJECT_TYPE,S.OSUSER OS_USER_NAME,A.OWNER,A.OBJECT OBJECT_NAME,DECODE(SIGN(48 - COMMAND),1 ,TO_CHAR(COMMAND), 'ACTION CODE #' || TO_CHAR(COMMAND) ) ACTION, P.PROGRAM ORACLE_PROCESS,S.TERMINAL TERMINAL,S.PROGRAM PROGRAM,S.STATUS SESSION_STATUS FROM V$SESSION S, V$ACCESS A,V$PROCESS P WHERE S.PADDR = P.ADDR AND S.TYPE = 'USER' AND A.SID =S.SID AND A.OBJECT = 'SUBSCRIBER_ATTR' ORDER BY ERNAME, S.OSUSER;14 、查看回滚段 :SQL >COL NAME FORMAT A10SQL >SET LINESIZE 100SQL >SELECT ROWNUM , SYS .DBA_ROLLBACK_SEGS.SEGMENT_NAME NAME ,V$ROLLSTAT.EXTENTS EXTENTS , V$ROLLSTAT.RSSIZE SIZE_IN_BYTES,V$ROLLSTAT.XACTS XACTS, V$ROLLSTAT.GETS GETS, V$ROLLSTAT.WAITS WAITS, V$ROLLSTAT.WRITES WRITES, SYS .DBA_ROLLBACK_SEGS.STATUS STATUS FROM V$ROLLSTAT, SYS .DBA_ROLLBACK_SEGS, V$ROLLNAME WHEREV$ (+) = SYS .DBA_ROLLBACK_SEGS.SEGMENT_NAME ANDV$N (+) = V$N ORDER BY ROWNUM ;15 、耗资源的进程 (top session):SELECT S.SCHEMANAME SCHEMA_NAME,DECODE(SIGN(48 - COMMAND), 1 ,TO_CHAR(COMMAND), 'ACTION CODE #' || TO_CHAR(COMMAND) ) ACTION,STATUS SESSION_STATUS,S.OSUSER OS_USER_NAME,S.SID,P.SPID,S.SERIAL#SERIAL_NUM,NVL(ERNAME, '[ORACLE PROCESS]' ) USER_NAME,S.TERMINAL TERMINAL,S.PROGRAM PROGRAM,ST.VALUE CRITERIA_VALUE FROM V$SESSTAT ST,V$SESSION S,V$PROCESS P WHERE ST.SID = S.SID AND ST.STATISTIC# =TO_NUMBER( '38' ) AND ( 'ALL' = 'ALL' OR S.STATUS = 'ALL' ) AND P.ADDR=S.PADDRORDER BY ST.VALUE DESC ,P.SPID ASC ,ERNAME ASC ,S.OSUSER ASC ;根据 PID 查找相应的语句 :SELECT ERNAME,A.MACHINE,A.PROGRAM,A.SID,A.SERIAL#,A.STATUS,C.PIECE,C.SQL_TEXT FROMV$SESSION A,V$PROCESS B,V$SQLTEXT C WHERE B.SPID=SPID ANDB.ADDR=A.PADDR AND A.SQL_ADDRESS=C.ADDRESS(+) ORDER BY C.PIECE;SQL语句大全—查看数据(三)2007年08月16日星期四上午02:17根据 SID 找 ORACLE 的某个进程 :SQL > SELECT PRO.SPID FROM V$SESSION SES,V$PROCESS PRO WHERESES.SID=21AND SES.PADDR=PRO.ADDR;监控当前数据库谁在运行什么 SQL 语句 :SQL >SELECT OSUSER, USERNAME, SQL_TEXT FROM V$SESSION A, V$SQLTEXT B WHERE A.SQL_ADDRESS =B.ADDRESS ORDER BY ADDRESS, PIECE;如何查看数据库中某用户,正在运行什么 SQL 语句SQL >SELECT SQL_TEXT FROM V$SQLTEXT T, V$SESSION S WHERET.ADDRESS=S.SQL_ADDRESS AND T.HASH_VALUE=S.SQL_HASH_VALUE ANDS.MACHINE='XXXXX' OR USERNAME= 'WACOS' ;如何查出前台正在发出的 sql 语句 :SQL > SELECT USER_NAME,SQL_TEXT FROM V$OPEN_CURSOR WHERE SID IN (SELECT SID FROM (SELECT SID,SERIAL# FROM V$SESSION WHERESTATUS='ACTIVE'));查询当前所执行的 SQL 语句:SQL > SELECT PROGRAM ,SQL_ADDRESS FROM V$SESSION WHERE PADDR IN (SELECT ADDR FROM V$PROCESS WHERE SPID=3556);PROGRAM SQL_ADDRESS------------------------------------------------ ----------------SQLPLUS@CTC20 (TNS V1-V3) 000000038FCB1A90SQL > SELECT SQL_TEXT FROM V$SQLAREA WHEREADDRESS= '000000038FCB1A90' ;找出消耗 CPU 最高的进程对应的 SQL 语句:SET LINE 240SET VERIFY OFFCOLUMN SID FORMAT 999COLUMN PID FORMAT 999COLUMN S_# FORMAT 999COLUMN USERNAME FORMAT A9 HEADING "ORA USER"COLUMN PROGRAM FORMAT A29COLUMN SQL FORMAT A60COLUMN OSNAME FORMAT A9 HEADING "OS USER"SELECT P.PID PID,S.SID SID,P.SPID SPID,ERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL# S_#,P.TERMINAL,P.PROGRAMPROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1 , 80 )) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRESS (+) AND P.SPID LIKE '%&1%' ;ENTER VALUE FOR 1 : PID¡(这里输入占用 CPU 最高的进程对应的 PID )SET TERMOUT OFFSPOOL MAXCPU.TXTSELECT '++' ||ERNAME USERNAME,RTRIM(REPLACE(A.SQL_TEXT,CHR( 10 ), '' ))|| ';' FROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRESS (+) AND P.SPID LIKE '%&&1%' ;Enter value for 1: PID (这里输入占用 CPU 最高的进程对应的 PID )CPU 用率最高的 2 条 SQL 语句的获取执行: top ,通过 top 获得 CPU 占用率最高的进程的 pid 。

相关文档
最新文档