[20181006]12c sqlplus顯示使用者上次登入時間.txt
[20181006]12c sqlplus顯示使用者上次登入時間.txt
--//連結:http://blog.itpub.net/267265/viewspace-2140256/,以前的測試:
sqlplus scott/btbtms@test01p
SQL*Plus: Release 12.2.0.1.0 Production on Sat Oct 6 20:03:28 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Last Successful login time: Sat Oct 06 2018 19:23:55 +08:00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
--//可以發現sqlplus登入連線資料庫,會顯示上次成功登入的時間,實際上我一直認為不好的設計.
--//如果僅僅sqlplus有這個功能還好,其它第3方工具也會修改這個資訊.
--//如果你掃描共享池,可以確定執行是如下語句:
SCOTT@test01p> select sql_id,executions,sql_text c120 from v$sql where sql_id in ('9zg9qd9bm4spu','865qwpcdyggkk');
SQL_ID EXECUTIONS C120
------------- ---------- -------------------------------------------------------------------------------------------------------------------
9zg9qd9bm4spu 4 update user$ set spare6=DECODE(to_char(:2, 'YYYY-MM-DD'), '0000-00-00', to_date(NULL), :2) where user#=:1
865qwpcdyggkk 4 select spare6 from user$ where user#=:1
--//以toad使用者登入:
SCOTT@test01p> select sql_id,executions,sql_text c120 from v$sqlarea where sql_id in ('9zg9qd9bm4spu','865qwpcdyggkk');
SQL_ID EXECUTIONS C120
------------- ---------- -----------------------------------------------------------------------------------------------------------------
9zg9qd9bm4spu 6 update user$ set spare6=DECODE(to_char(:2, 'YYYY-MM-DD'), '0000-00-00', to_date(NULL), :2) where user#=:1
865qwpcdyggkk 6 select spare6 from user$ where user#=:1
--//執行次數增加.即使sqlplus加入-nologintime僅僅不顯示實際上還是修改spare6欄位資訊的.
D:\tools\rlwrap>sqlplus -nologintime scott/btbtms@test01p
SQL*Plus: Release 12.2.0.1.0 Production on Sat Oct 6 20:33:03 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SCOTT@test01p> select sql_id,executions,sql_text c120 from v$sqlarea where sql_id in ('9zg9qd9bm4spu','865qwpcdyggkk');
SQL_ID EXECUTIONS C120
------------- ---------- ----------------------------------------------------------------------------------------------------------
9zg9qd9bm4spu 7 update user$ set spare6=DECODE(to_char(:2, 'YYYY-MM-DD'), '0000-00-00', to_date(NULL), :2) where user#=:1
865qwpcdyggkk 7 select spare6 from user$ where user#=:1
--//使用共享連線模式登入也是一樣,注這裡連線cdb資料庫.
--//sqlplus system/btbtms@127.0.0.1:1521/testxdb:shared
SYSTEM@127.0.0.1:1521/testxdb:shared> select sql_id,executions,sql_text c120 ,con_id from v$sqlarea where sql_id in ('9zg9qd9bm4spu','865qwpcdyggkk') and con_id=1;
SQL_ID EXECUTIONS C120 CON_ID
------------- ---------- ------------------------------------------------------------------------------------------------------------------------ ----------
9zg9qd9bm4spu 5 update user$ set spare6=DECODE(to_char(:2, 'YYYY-MM-DD'), '0000-00-00', to_date(NULL), :2) where user#=:1 1
865qwpcdyggkk 5 select spare6 from user$ where user#=:1 1
D:\tools\rlwrap>sqlplus system/btbtms@127.0.0.1:1521/testxdb:shared
SQL*Plus: Release 12.2.0.1.0 Production on Sat Oct 6 20:38:57 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Last Successful login time: Sat Oct 06 2018 20:36:37 +08:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SYSTEM@127.0.0.1:1521/testxdb:shared>
SYSTEM@127.0.0.1:1521/testxdb:shared> select saddr,sid,paddr,status,server from v$session where sid in (select sid from v$mystat);
SADDR SID PADDR STATUS SERVER
---------------- ---------- ---------------- -------------------- ---------
000007FF07F4DAA8 320 000007FF081FFD10 ACTIVE SHARED
--//SERVER=SHARED,共享連線模式.
SYSTEM@127.0.0.1:1521/testxdb:shared> select sql_id,executions,sql_text c120 ,con_id from v$sqlarea where sql_id in ('9zg9qd9bm4spu','865qwpcdyggkk') and con_id=1;
SQL_ID EXECUTIONS C120 CON_ID
------------- ---------- ------------------------------------------------------------------------------------------------------------------------ ----------
9zg9qd9bm4spu 6 update user$ set spare6=DECODE(to_char(:2, 'YYYY-MM-DD'), '0000-00-00', to_date(NULL), :2) where user#=:1 1
865qwpcdyggkk 6 select spare6 from user$ where user#=:1 1
--//可以發現執行次數也會增加,
--//也就是講如果大量的連線登入會導致大量的修改sys.user$的spare6欄位,導致大量爭用.所以講任何新特性都會付出代價.
--//真不知道oracle對於這個特性如何考慮的,在生產系統一個使用者每秒20-30個連線很正常的,這樣不會導致大量對於該塊的爭用嗎?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2215493/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20200824]12c sqlplus rowprefetch arraysize 顯示行數量的關係.txtSQL
- [20211108]sqlplus 本地登入緩慢.txtSQL
- [20181207]sqlplus下顯示資料精度.txtSQL
- [20181006]12c使用toad連線問題.txt
- [20210119]sqlplus 12c LOBPREFETCH.txtSQL
- [20191104]sqlplus下顯示資料精度2.txtSQL
- [20211108]sqlplus資料寬度顯示設定.txtSQL
- [20201121]顯示時間戳高精度版本.txt時間戳
- [20181006]建立測試使用者scott.txt
- [20211109]sqlplus本地登入緩慢分析2.txtSQL
- [20210401]跟蹤sqlplus登入執行了什麼.txtSQL
- [20190502]給顯示輸出加入時間戳.txt時間戳
- [20200313]windows顯示輸出時間戳指令碼.txtWindows時間戳指令碼
- [20181109]12c sqlplus rowprefetch引數5.txtSQL
- [20181108]12c sqlplus rowprefetch引數4.txtSQL
- [20181106]12c sqlplus rowprefetch引數3.txtSQL
- Linux基礎命令---顯示登入使用者lognameLinux
- Linux基礎命令---顯示登入使用者wLinux
- Linux基礎命令—顯示登入使用者wLinux
- [20200818]12c 10046跟蹤時間戳.txt時間戳
- win10使用者在登入介面顯示使用者列表Win10
- [20200818]12c 10046跟蹤時間戳2.txt時間戳
- js時間顯示設定JS
- [20230323]sqlplus #.txtSQL
- QT學習 實時顯示時間QT
- 定期刪除檔案,限制linux使用者登入時間Linux
- sqlplus常用的幾種登入方式SQL
- sqlplus as sysdb登入報ora-01017SQL
- QT顯示當前日期時間QT
- Qt設計:時間顯示(QTimer)QT
- javaScript動態顯示當前時間JavaScript
- 時間格式化,顯示昨天、今天
- 讓history命令顯示日期和時間
- 一對一視訊原始碼,登入時輸入密碼時的顯示密碼按鈕原始碼密碼
- win10時間顯示秒怎麼設定_win10時間顯示秒如何調出Win10
- win10 迅雷9登入顯示網路超時怎麼解決Win10
- 在sqlnet.ora中設定引數限制使用者登入時間SQL
- wordpress文章的顯示時間期限或過期時間的標誌