為什麼SELECT查詢中應避免使用*?
當想在SELECT語句中列出所有的列時,使用*非常方便。但這是一種低效的方法。
Oracle在解析的過程中會將*依次轉換為具體的列名,這是通過查詢資料字典來完成的。點選(此處)摺疊或開啟
-
--開啟時間顯示
-
08:13:12 scott@TESTDB11>set timing on;
-
--使用*
-
08:14:25 scott@TESTDB11>select * from emp;
-
-
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
-
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
-
7369 SMITH CLERK 7902 17-DEC-80 800 20
-
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
-
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
-
7566 JONES MANAGER 7839 02-APR-81 2975 20
-
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
-
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
-
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
-
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
-
7839 KING PRESIDENT 17-NOV-81 5000 10
-
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
-
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
-
7900 JAMES CLERK 7698 03-DEC-81 950 30
-
7902 FORD ANALYST 7566 03-DEC-81 3000 20
-
7934 MILLER CLERK 7782 23-JAN-82 1300 10
-
-
14 rows selected.
-
-
Elapsed: 00:00:00.01
-
-
--使用表名修飾所有的列名
-
08:14:28 scott@TESTDB11>select emp.empno, emp.ename, emp.job, emp.mgr, emp.hiredate, emp.sal, emp.comm, emp.deptno from emp;
-
-
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
-
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
-
7369 SMITH CLERK 7902 17-DEC-80 800 20
-
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
-
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
-
7566 JONES MANAGER 7839 02-APR-81 2975 20
-
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
-
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
-
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
-
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
-
7839 KING PRESIDENT 17-NOV-81 5000 10
-
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
-
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
-
7900 JAMES CLERK 7698 03-DEC-81 950 30
-
7902 FORD ANALYST 7566 03-DEC-81 3000 20
-
7934 MILLER CLERK 7782 23-JAN-82 1300 10
-
-
14 rows selected.
-
- Elapsed: 00:00:00.00
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1069861/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼使用API?什麼情況下避免使用API?API
- MySQL中MyISAM為什麼比InnoDB查詢快MySql
- MySQL 中 MyISAM 中的查詢為什麼比 InnoDB 快?MySql
- 【MOS:1549181.1】為何在查詢中索引未被使用--為什麼索引沒有被使用索引
- 為什麼我使用了索引,查詢還是慢?索引
- 為什麼忘記commit也會造成select查詢的效能問題MIT
- 索引為什麼能提供查詢效能...索引
- ClickHouse為什麼查詢速度快?
- 為什麼忘記commit也會造成select查詢的效能問題(SELECT產生Redo的情形)MIT
- 為何在查詢中索引未被使用索引
- 技術分享 | 為什麼 SELECT 查詢選擇全表掃描,而不走索引?索引
- 【轉載】為什麼忘記commit也會造成select查詢的效能問題MIT
- select查詢中union連線符
- select查詢之三:子查詢
- select查詢之一:普通查詢
- select子查詢
- 為什麼 Redis 的查詢很快, Redis 如何保證查詢的高效Redis
- 【閃回特性之閃回查詢】使用閃回查詢(select as of)
- Mysql系列第七講 玩轉select條件查詢,避免採坑MySql
- 【轉載】為什麼 MySQL 不推薦使用子查詢和 joinMySql
- [轉載] 為什麼 MySQL 不推薦使用子查詢和 joinMySql
- Hive之Hive快捷查詢(避免Mapruduce查詢)Hive
- select查詢之四:連線查詢
- [破解]為什麼hibernate插入快,查詢慢
- 為什麼 SQL 語句使用了索引,但卻還是慢查詢?SQL索引
- 為什麼要避免在 Go 中使用 ioutil.ReadAll?Go
- 為什麼大多數公司最好避免使用微服務? -GreekDataGuy微服務
- Oracle 查詢行數很少,為什麼不走索引?Oracle索引
- 使用PDO查詢mysql避免SQL隱碼攻擊MySql
- 告訴你MySQL主鍵查詢為什麼這麼快MySql
- vue中為什麼使用vuex?應用場景有哪些?Vue
- sql查詢更新update selectSQL
- Select from subquery 子查詢
- 在Python中,為什麼從dict查詢元素比list快?(待填坑)Python
- 怎麼使用電腦查詢快遞物流資訊,極兔有什麼平臺支援查詢
- 查詢快捷鍵ctrl加什麼 wordexcel表格查詢快捷鍵是ctrl和什麼Excel
- 為何在查詢中索引未被使用(二)——問題解答索引
- Python 集合是什麼,為什麼應該使用以及如何使用?Python