Enviar pesquisa
Carregar
B13 Investigating oracle by Julian Dyke
•
2 gostaram
•
1,634 visualizações
Insight Technology, Inc.
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 87
Baixar agora
Baixar para ler offline
Recomendados
Drupal7 dbtng
Drupal7 dbtng
Nicolas Leroy
Drupal II: The SQL
Drupal II: The SQL
ddiers
Dependency Injection in Laravel
Dependency Injection in Laravel
HAO-WEN ZHANG
Wed 1630 greene_robert_color
Wed 1630 greene_robert_color
DATAVERSITY
SQLite in Adobe AIR
SQLite in Adobe AIR
Peter Elst
Android Data Persistence
Android Data Persistence
Romain Rochegude
DBD::SQLite
DBD::SQLite
charsbar
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
Marco Gralike
Recomendados
Drupal7 dbtng
Drupal7 dbtng
Nicolas Leroy
Drupal II: The SQL
Drupal II: The SQL
ddiers
Dependency Injection in Laravel
Dependency Injection in Laravel
HAO-WEN ZHANG
Wed 1630 greene_robert_color
Wed 1630 greene_robert_color
DATAVERSITY
SQLite in Adobe AIR
SQLite in Adobe AIR
Peter Elst
Android Data Persistence
Android Data Persistence
Romain Rochegude
DBD::SQLite
DBD::SQLite
charsbar
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
Marco Gralike
Android Data Persistence
Android Data Persistence
Jussi Pohjolainen
Drupal - dbtng 25th Anniversary Edition
Drupal - dbtng 25th Anniversary Edition
ddiers
Dependency Injection
Dependency Injection
Fabien Potencier
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2
Marco Gralike
Creating a Web of Data with Restlet
Creating a Web of Data with Restlet
guest7d0e11
Top Ten Reasons to Use EntityFieldQuery in Drupal
Top Ten Reasons to Use EntityFieldQuery in Drupal
Fredric Mitchell
Persistences
Persistences
Training Guide
Automated Refactoring With IntelliJ IDEA
Automated Refactoring With IntelliJ IDEA
CodeOps Technologies LLP
Core Php Component Presentation
Core Php Component Presentation
John Coonen
Your Entity, Your Code
Your Entity, Your Code
Marco Vito Moscaritolo
Erlang for data ops
Erlang for data ops
mnacos
UKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the Database
Marco Gralike
Doctrine 2
Doctrine 2
zfconfua
Node js mongodriver
Node js mongodriver
christkv
spring-tutorial
spring-tutorial
Arjun Shanka
Oracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory Database
Marco Gralike
Система рендеринга в Magento
Система рендеринга в Magento
Magecom Ukraine
iBATIS
iBATIS
techmonkey4u
Java and XML Schema
Java and XML Schema
Raji Ghawi
Entities in drupal 7
Entities in drupal 7
Zsolt Tasnadi
treeview
treeview
tutorialsruby
treeview
treeview
tutorialsruby
Mais conteúdo relacionado
Mais procurados
Android Data Persistence
Android Data Persistence
Jussi Pohjolainen
Drupal - dbtng 25th Anniversary Edition
Drupal - dbtng 25th Anniversary Edition
ddiers
Dependency Injection
Dependency Injection
Fabien Potencier
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2
Marco Gralike
Creating a Web of Data with Restlet
Creating a Web of Data with Restlet
guest7d0e11
Top Ten Reasons to Use EntityFieldQuery in Drupal
Top Ten Reasons to Use EntityFieldQuery in Drupal
Fredric Mitchell
Persistences
Persistences
Training Guide
Automated Refactoring With IntelliJ IDEA
Automated Refactoring With IntelliJ IDEA
CodeOps Technologies LLP
Core Php Component Presentation
Core Php Component Presentation
John Coonen
Your Entity, Your Code
Your Entity, Your Code
Marco Vito Moscaritolo
Erlang for data ops
Erlang for data ops
mnacos
UKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the Database
Marco Gralike
Doctrine 2
Doctrine 2
zfconfua
Node js mongodriver
Node js mongodriver
christkv
spring-tutorial
spring-tutorial
Arjun Shanka
Oracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory Database
Marco Gralike
Система рендеринга в Magento
Система рендеринга в Magento
Magecom Ukraine
iBATIS
iBATIS
techmonkey4u
Java and XML Schema
Java and XML Schema
Raji Ghawi
Entities in drupal 7
Entities in drupal 7
Zsolt Tasnadi
Mais procurados
(20)
Android Data Persistence
Android Data Persistence
Drupal - dbtng 25th Anniversary Edition
Drupal - dbtng 25th Anniversary Edition
Dependency Injection
Dependency Injection
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2
Creating a Web of Data with Restlet
Creating a Web of Data with Restlet
Top Ten Reasons to Use EntityFieldQuery in Drupal
Top Ten Reasons to Use EntityFieldQuery in Drupal
Persistences
Persistences
Automated Refactoring With IntelliJ IDEA
Automated Refactoring With IntelliJ IDEA
Core Php Component Presentation
Core Php Component Presentation
Your Entity, Your Code
Your Entity, Your Code
Erlang for data ops
Erlang for data ops
UKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the Database
Doctrine 2
Doctrine 2
Node js mongodriver
Node js mongodriver
spring-tutorial
spring-tutorial
Oracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory Database
Система рендеринга в Magento
Система рендеринга в Magento
iBATIS
iBATIS
Java and XML Schema
Java and XML Schema
Entities in drupal 7
Entities in drupal 7
Semelhante a B13 Investigating oracle by Julian Dyke
treeview
treeview
tutorialsruby
treeview
treeview
tutorialsruby
Views for hackers v1.3
Views for hackers v1.3
Karim Ratib
Introduction to Oracle Database.pptx
Introduction to Oracle Database.pptx
SiddhantBhardwaj26
MongoDB Knowledge share
MongoDB Knowledge share
Mr Kyaing
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
SpringPeople
Drools rule Concepts
Drools rule Concepts
RaviShankar Mishra
PHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better Code
SWIFTotter Solutions
Security Multitenant
Security Multitenant
Arush Jain
Chapter Seven- JDBC.pptx
Chapter Seven- JDBC.pptx
BlenKassahun1
Homework help on oracle
Homework help on oracle
Steve Nash
aotc_120805_mwagner
aotc_120805_mwagner
Mary Wagner
TSQL in SQL Server 2012
TSQL in SQL Server 2012
Eduardo Castro
The IoC Hydra - Dutch PHP Conference 2016
The IoC Hydra - Dutch PHP Conference 2016
Kacper Gunia
Dependency Injection
Dependency Injection
Alena Holligan
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big Data
Gruter
2° Ciclo Microsoft CRUI 3° Sessione: l'evoluzione delle piattaforme tecnologi...
2° Ciclo Microsoft CRUI 3° Sessione: l'evoluzione delle piattaforme tecnologi...
Jürgen Ambrosi
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy
The IoC Hydra
The IoC Hydra
Kacper Gunia
Mainframe Technology Overview
Mainframe Technology Overview
Haim Ben Zagmi
Semelhante a B13 Investigating oracle by Julian Dyke
(20)
treeview
treeview
treeview
treeview
Views for hackers v1.3
Views for hackers v1.3
Introduction to Oracle Database.pptx
Introduction to Oracle Database.pptx
MongoDB Knowledge share
MongoDB Knowledge share
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Drools rule Concepts
Drools rule Concepts
PHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better Code
Security Multitenant
Security Multitenant
Chapter Seven- JDBC.pptx
Chapter Seven- JDBC.pptx
Homework help on oracle
Homework help on oracle
aotc_120805_mwagner
aotc_120805_mwagner
TSQL in SQL Server 2012
TSQL in SQL Server 2012
The IoC Hydra - Dutch PHP Conference 2016
The IoC Hydra - Dutch PHP Conference 2016
Dependency Injection
Dependency Injection
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big Data
2° Ciclo Microsoft CRUI 3° Sessione: l'evoluzione delle piattaforme tecnologi...
2° Ciclo Microsoft CRUI 3° Sessione: l'evoluzione delle piattaforme tecnologi...
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoC
The IoC Hydra
The IoC Hydra
Mainframe Technology Overview
Mainframe Technology Overview
Mais de Insight Technology, Inc.
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
Docker and the Oracle Database
Docker and the Oracle Database
Insight Technology, Inc.
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Insight Technology, Inc.
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
Insight Technology, Inc.
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
Insight Technology, Inc.
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
Insight Technology, Inc.
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
Insight Technology, Inc.
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
Insight Technology, Inc.
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
Insight Technology, Inc.
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
Insight Technology, Inc.
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
Insight Technology, Inc.
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
Insight Technology, Inc.
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
Insight Technology, Inc.
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Insight Technology, Inc.
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
Insight Technology, Inc.
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
Insight Technology, Inc.
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
Insight Technology, Inc.
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Insight Technology, Inc.
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
Insight Technology, Inc.
Mais de Insight Technology, Inc.
(20)
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
Docker and the Oracle Database
Docker and the Oracle Database
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
Último
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
danishmna97
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
Kumar Satyam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
UiPathCommunity
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Rustici Software
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard37
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Zilliz
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
Remote DBA Services
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
Último
(20)
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
B13 Investigating oracle by Julian Dyke
1.
1 Investigating Oracle Julian Dyke Independent Consultant DB
Tech Showcase - Osaka May 2013 juliandyke.com© 2013 Julian Dyke
2.
juliandyke.com© 2013 Julian
Dyke About Me Worked with Oracle databases since 1989 Independent Consultant for 8 years Regular presenter at Conferences, Seminars and Special Interest Groups Co-Author of Pro Oracle Database 10g RAC on Linux Member of Oak Table Network since 2003 Member of UKOUG Council Former UKOUG director Former chair of UKOUG RAC & HA SIG Oracle ACE Expert Oracle Certified DBA – 7.3, 8, 8i, 9i and 10i 2
3.
juliandyke.com© 2013 Julian
Dyke3 Investigating Oracle Introduction This presentation describes various techniques for investigating Oracle features Investigative techniques differ depending on feature under investigation Why investigate? Feature evaluation Performance Compatibility Licensing costs
4.
juliandyke.com© 2013 Julian
Dyke Investigating Oracle Agenda Initial Research Advanced Research Oracle Tools Execution Plans Trace Dumps Internals Operating System Tools Custom Tools 4
5.
juliandyke.com© 2013 Julian
Dyke5 Initial Research
6.
juliandyke.com© 2013 Julian
Dyke6 Initial Research Read the Oracle Documentation Read ALL of the Oracle documentation for the feature Useful sources include: New Features Guide 11g Release 1 (11.2) Part Number E10881-01 Other Oracle documents What's New in... sections White Papers Oracle Technology Network http://www.oracle.com/technetwork My Oracle Support http://support.oracle.com Review the SQL syntax that supports the feature in: SQL Language Reference PL/SQL Packages and Types Reference
7.
juliandyke.com© 2013 Julian
Dyke Initial Research Read Third Party Documentation Read any available third party documentation for the feature Blogs Websites Books Presentations White Papers Make information is accurate and credible 7
8.
juliandyke.com© 2013 Julian
Dyke Initial Research Learn how the new feature works Build a test environment Build VMs Configure storage Install Oracle software Install required patch sets / one-offs Create database(s) Configure feature Set parameters Test feature DDL DML etc 8
9.
juliandyke.com© 2013 Julian
Dyke Initial Research Licensing Check the licensing requirements for the feature being investigated Almost all recent new features have been licensed options Investigation may not be cost-effective Check the Oracle Licensing document Check the global pricing document Check your existing license agreement Gotchas include: VMWare environments Primary and standby configurations RAC/Exadata environments 9
10.
juliandyke.com© 2013 Julian
Dyke10 Advanced Research
11.
juliandyke.com© 2013 Julian
Dyke11 Advanced Research Supported Parameters Supported parameter values are reported in V$PARAMETER V$SYSTEM_PARAMETER V$SPPARAMETER Normalized lists of values are reported in V$PARAMETER2 V$SYSTEM_PARAMETER2 In Oracle 10.1 and above, valid values for supported parameters are reported in V$PARAMETER_VALID_VALUES
12.
juliandyke.com© 2013 Julian
Dyke12 Advanced Research Unsupported Parameters Unsupported parameter values are reported in X$KSPPI X$KSPPSV X$KSPPCV To print parameter name, description and values use: In Oracle 10.1 and above, valid values for unsupported parameters are reported in X$KSPVLD_VALUES SELECT i.ksppinm, i.ksppdesc, sv.ksppstvl FROM x$ksppi i, x$ksppsv sv WHERE i.indx = sv.indx ORDER BY i.ksppinm;
13.
juliandyke.com© 2013 Julian
Dyke13 Advanced Research Optimizer Parameters In Oracle 10.1 and above, optimizer parameter values are reported at Instance-level Session-level Statement-level Dynamic performance views only report supported parameters Fixed (X$) tables include unsupported parameters: Level Supported Parameters Unsupported Parameters Instance V$SYS_OPTIMIZER_ENV X$QKSCESYS Session V$SES_OPTIMIZER_ENV X$QKSCESES Statement V$SQL_OPTIMIZER_ENV X$KQLFSQCE
14.
juliandyke.com© 2013 Julian
Dyke14 Advanced Research Data Dictionary View Definitions Data dictionary views are based on data dictionary objects DBA_% Accessible by all users ALL_% Accessible by current user USER_% Accessible by users with DBA privilege only View definitions can be found in DBA_VIEWS SET LONG 50000 SELECT text FROM dba_views WHERE view_name = 'DBA_INDEXES'; Many views are defined in terms of other views e.g. DBA_SEGMENTS is now based on SYS_DBA_SEGS
15.
juliandyke.com© 2013 Julian
Dyke15 Advanced Research Data Dictionary Objects The data dictionary is created in the SYSTEM tablespace Objects are owned by SYS Data dictionary tables include: Table Name Description OBJ$ Objects TAB$ Tables IND$ Indexes COL$ Columns USER$ Users SEG$ Segments FET$ Free Extents UET$ Used Extents TS$ Tablespaces FILE$ Files
16.
juliandyke.com© 2013 Julian
Dyke16 Advanced Research Data Dictionary Index Clusters Many data dictionary objects are stored in index clusters For example C_OBJ# is a cluster containing the following tables: ASSEMBLY$ ICOLDEP$ REFCON$ ATTRCOL$ IND$ SUBCOLTYPE$ CLU$ LIBRARY$ TAB$ COL$ LOB$ TYPE_MISC$ COLTYPE$ NTAB$ VIEWTRCOL$ ICOL$ OPQTYPE$ ICOLDEP$ Other clusters include: C_USER# C_FILE#_BLOCK# C_TS# Index clusters increase complexity of: Trace files Redo/undo changes
17.
juliandyke.com© 2013 Julian
Dyke17 Advanced Research SQL.BSQ During database creation, data dictionary objects are defined in $ORACLE_HOME/rdbms/admin/sql.bsq In Oracle 11.1 and above, sql.bsq has been divided into the following files: dcore.bsq drac.bsq daw.bsq dsqlddl.bsq dsec.bsq dsummgt.bsq dmanage.bsq doptim.bsq dtools.bsq dplsql.bsq dobj.bsq dexttab.bsq dtxnspc.bsq djava.bsq ddm.bsq dfmap.bsq dpart.bsq dlmnr.bsq denv.bsq drep.bsq The core data dictionary tables (obj$, tab$, ind$, col$ etc) are specified in dcore.bsq
18.
juliandyke.com© 2013 Julian
Dyke18 Advanced Research Dynamic Performance View Definitions Definitions reported by V$FIXED_VIEW_DEFINITION Global (GV$) view selects from underlying fixed (X$) tables SELECT view_definition FROM v$fixed_view_definition WHERE view_name = 'GV$RESULT_CACHE_MEMORY'; VIEW_DEFINITION SELECT inst_id, qesrcmem_lad, qesrcmem_cnk, qesrcmem_blk, DECODE (qesrcmem_sta, 0, 'NO', 1, 'YES'), qesrcmem_oid, qesrcmem_pos FROM x$qesrcmem; SELECT view_definition FROM v$fixed_view_definition WHERE view_name = 'V$RESULT_CACHE_MEMORY'; VIEW_DEFINITION SELECT id, chunk, offset, free, object_id, position FROM gv$result_cache_memory WHERE inst_id = USERENV ('Instance') Instance (V$) view selects from global (GV$) view
19.
juliandyke.com© 2013 Julian
Dyke Advanced Research PL/SQL Package Definitions PL/SQL package headers are distributed in $ORACLE_HOME/rdbms/admin For example: dbmsmntr.sql contains package header for DBMS_MONITOR dbmsxplan.sql contains package header for DBMS_XPLAN Names are not intuitive Use grep to find specific packages Package headers contain comments that can be useful when documentation is inadequate e.g.: new parameters ambiguity Most package bodies are wrapped: Unwrap tools can be found on the internet Probably break terms of licence agreements 19
20.
juliandyke.com© 2013 Julian
Dyke20 Advanced Research Error Messages Error messages describe what a feature does not support Can be useful to understand how feature is implemented See $ORACLE_HOME/rdbms/mesg/oraus.msg Contains all message and event definitions Individual messages reported by oerr on Unix platforms Binary file - on Unix use strings utility to inspect contents $ strings $ORACLE_HOME/rdbms/mesg/oraus.msg > /tmp/oraus.txt A range of error numbers is initially allocated for each feature Some features have more than one range
21.
juliandyke.com© 2013 Julian
Dyke21 Advanced Research Fixed Tables and Views V$FIXED_TABLES reports all fixed objects including Fixed (X$) tables Derived fixed (X$) tables (fixed views) Global (GV$) dynamic performance views Instance (V$) dynamic performance views V$INDEXED_FIXED_COLUMN reports all indexed columns for Fixed (X$) tables
22.
juliandyke.com© 2013 Julian
Dyke22 Advanced Research Fixed Tables and Views Fixed (X$) tables are described in X$KQFTA Fixed (X$) derived tables are described in X$KQFDT Fixed (X$) table columns arev described in X$KQFCO Internal data type reported in KQFCODTY Indexes reported in KQFCOIDX and KQFCOIPO SELECT co.kqfconam, CASE co.kqfcodty WHEN 2 THEN 'NUMBER' WHEN 23 THEN 'RAW ('||kqfcosiz||')' END FROM x$kqfco co, x$kqfta ta WHERE co.kqfcotab = ta.indx AND ta.kqftanam = 'X$QESRCMEM' ORDER BY co.kqfcocno;
23.
juliandyke.com© 2013 Julian
Dyke23 Advanced Research Fixed Tables X$KQFCO.KQFCODTY reports internal column data type Current values in Oracle 11.1 Value Description 1 VARCHAR2 2 NUMBER 12 DATE 23 RAW 112 CLOB 180 TIMESTAMP 181 TIMESTAMP WITH TIME ZONE See http://www.juliandyke.com for more comprehensive list of internal data types (Internals/Internal Data Types)
24.
juliandyke.com© 2013 Julian
Dyke24 Advanced Research Shared Memory V$SGA reports SGA memory sizes V$SGAINFO reports SGA memory pool sizes introduced in Oracle 10.1 V$SGASTAT reports SGA memory area sizes enhanced in Oracle 10.1
25.
juliandyke.com© 2013 Julian
Dyke25 Advanced Research Shared Memory X$KSMFSV Contents of fixed SGA X$KSMGE Reports granule allocation X$KSMMEM Contents of SGA presented as an array Usually fails in Windows Usually fails with Automatic Memory Management X$KSMSP Reports shared pool memory usage X$KSMHP Reports heap allocation
26.
juliandyke.com© 2013 Julian
Dyke Advanced Research AWR Tables Some AWR tables contain useful information including: DBA_HIST_PLAN_OPERATION_NAME Execution plan operations DBA_HIST_PLAN_OPTION_NAME Execution plan operation options DBA_HIST_SQLCOMMAND_NAME Command types and names – similar to AUDIT_ACTIONS DBA_HIST_TOPLEVELCALL_NAME Top level calls 26
27.
juliandyke.com© 2013 Julian
Dyke27 Advanced Research Dynamic Performance Views V$BGPROCESS (X$KSBDD) List of background processes V$LATCHNAME (X$KSLLD) List of parent latches V$EVENT_NAME (X$KSLED) List of wait events V$LOCK_TYPE (X$KSIRESTYP) List of lock/enqueue types (Oracle 10.1 and above) V$SQL_HINT List of supported hints V$SQL_FEATURE List of supported features
28.
juliandyke.com© 2013 Julian
Dyke28 Advanced Research Dynamic Performance Views V$TYPE_SIZE (X$KQFSZ) Size in bytes of various data types V$RESERVED_WORDS (X$KWDDEF) List of keywords / reserved words X$MESSAGES List of messages exchanged between processes
29.
juliandyke.com© 2013 Julian
Dyke29 Advanced Research Standard Package $ORACLE_HOME/rdbms/admin/standard.sql Contains definitions of standard PL/SQL types, built-in functions and exceptions For example: DECODE SUBSTR INSTR UPPER LOWER In Oracle 11.2 standard.sql calls stdspec.sql stdbody.sql
30.
juliandyke.com© 2013 Julian
Dyke30 Oracle Tools Execution Plans
31.
juliandyke.com© 2013 Julian
Dyke31 Execution Plans AUTOTRACE SQL*Plus feature Prints execution plans and execution statistics $ORACLE_HOME/rdbms/admin/utlxplan.sql Requires PLUS_TRACE role $ORACLE_HOME/sqlplus/admin/plustrce.sql GRANT plustrce TO user1; In Oracle 10.1 and above execution plan output uses DBMS_XPLAN format: Automatically includes: Partition information Parallel execution information Requires access to a PLAN_TABLE
32.
juliandyke.com© 2013 Julian
Dyke32 Execution Plans AUTOTRACE Options are: SET AUTOTRACE OFF No report generated - default SET AUTOTRACE ON EXPLAIN Shows execution plan SET AUTOTRACE ON STATISTICS Shows execution statistics SET AUTOTRACE ON Shows output, execution plan and statistics SET AUTOTRACE ON TRACEONLY Suppresses query output if executed The EXPLAIN option generates a new execution plan Optimizer environment may differ from user sessions SET AUTOTRACE TRACEONLY EXPLAIN Shows execution plan for SELECT statements Shows execution plan AND executes DML statements Note that SET AUTOT TRACE EXP executes DML statements Any changes must be rolled back manually Alternatively explain the SELECT subquery only
33.
juliandyke.com© 2013 Julian
Dyke33 Execution Plans DBMS_XPLAN Introduced in Oracle 9.2 Enhanced in subsequent releases Useful subroutines include DISPLAY - display a plan from a PLAN_TABLE DISPLAY_AWR - display a plan from the AWR DISPLAY_CURSOR - display a plan from the library cache DISPLAY_PLAN – returns plan as a CLOB DISPLAY_SQLSET – displays a plan from a SQL tuning set DISPLAY_SQLPLAN_BASELIN E – displays a plan from SQL baseline For example to display execution plan for statement most recently executed by the current session: SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY_CURSOR);
34.
juliandyke.com© 2013 Julian
Dyke Execution Plans DBMS_XPLAN The FORMAT parameter specifies the output format for the execution plan There are four options: BASIC – minimum information - operation ID, operation name and option only TYPICAL – default – most relevant information in plan – operation id, operation name, option, #rows, # bytes, optimizer cost. Also pruning, parallel and predicate information where applicable SERIAL – same as TYPICAL except parallel information is not displayed even if plan executes in parallel ALL – same as TYPICAL. Also includes PROJECTION, ALIAS and REMOTE SQL if applicable 34
35.
juliandyke.com© 2013 Julian
Dyke Execution Plans DBMS_XPLAN The following keywords can be added to the FORMAT options for more fine- grained control of output ROWS – number of rows estimated by optimizer BYTES – number of bytes estimated by optimizer COST – optimizer cost information PARTITION – partition pruning information PARALLEL – parallel execution information PREDICATE – predicate section PROJECTION – projection section ALIAS – Query Block Name / Object Alias section REMOTE – distributed query information NOTE - note section of plan Sections are only displayed if relevant To exclude a section prefix with minus e.g. -PROJECTION 35
36.
juliandyke.com© 2013 Julian
Dyke Execution Plans DBMS_XPLAN For DISPLAY_CURSOR and DISPLAY_SQLSET, additional data can be output using the following keywords: IOSTATS – shows IO statistics for all executions of the cursor MEMSTATS – displays memory management statistics including execution mode of operator how much memory was used number of bytes spilled to disk ALLSTATS – both IOSTATS and MEMSTATS LAST – only report statistics for last execution of cursor IOSTATS, ALLSTATS and LAST require basic plan statistics which are collected by setting STATISTICS_LEVEL parameter to ALL specifying GATHER_PLAN_STATISTICS hint MEMSTATS requires PGA memory management to be enabled by: setting PGA_AGGREGATE_TARGET to non-zero value 36
37.
juliandyke.com© 2013 Julian
Dyke37 Oracle Tools Trace
38.
juliandyke.com© 2013 Julian
Dyke38 SQL Trace Diagnostics Area In Oracle 11.1 and above trace files and alert logs are written to the diagnostics area: Default location is $ORACLE_HOME/diag Trace files and alter log are written to $ORACLE_BASE/diag/rdbms/<database>/<instance>/trace For example for database TEST $ORACLE_BASE/diag/rdbms/test/TEST/trace BACKGROUND_DUMP_DEST and USER_DUMP_DEST parameters still available in Oracle 11.2 New dynamic performance view V$DIAG_INFO reports trace locations Trace file for current process can be identified using: SELECT value FROM v$diag_info WHERE name = 'Default Trace File';
39.
juliandyke.com© 2013 Julian
Dyke39 SQL Trace Trace File Identifier In Oracle 8.1.5 and above a suffix can be added to the trace file name using TRACEFILE_IDENTIFIER parameter For example given the following current trace filename: ALTER SESSION SET tracefile_identifier = 'TEST1'; TEST_ora_24672.trc The following statement: will add the suffix "_TEST1" to the file name e.g. TEST_ora_24672_TEST1.trc
40.
juliandyke.com© 2013 Julian
Dyke40 DBMS_MONITOR Overview Introduced in Oracle 10.1 Contains the following subroutines: SESSION_TRACE_ENABLE SESSION_TRACE_DISABLE DATABASE_TRACE_ENABLE DATABASE_TRACE_DISABLE CLIENT_ID_TRACE_ENABLE CLIENT_ID_TRACE_DISABLE CLIENT_ID_STAT_ENABLE CLIENT_ID_STAT_DISABLE SERV_MOD_ACT_TRACE_ENABLE SERV_MOD_ACT_TRACE_DISABLE SERV_MOD_ACT_STAT_ENABLE SERV_MOD_ACT_STAT_DISABLE DBMS_MONITOR trace configuration is reported in DBA_ENABLED_TRACES
41.
juliandyke.com© 2013 Julian
Dyke41 DBMS_MONITOR Enabling and Disabling Trace To enable and disable trace in the current session use: EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE; EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE; To enable and disable trace in another session e.g. 42 use: EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE (SESSION_ID => 42); EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE (SESSION_ID => 42); To enable and disable trace for instance RAC1 use: EXECUTE DBMS_MONITOR.DATABASE_TRACE_ENABLE (INSTANCE_NAME => 'RAC1'); EXECUTE DBMS_MONITOR.DATABASE_TRACE_DISABLE (INSTANCE_NAME => 'RAC1'); To enable and disable trace for the entire database use: EXECUTE DBMS_MONITOR.DATABASE_TRACE_ENABLE; EXECUTE DBMS_MONITOR.DATABASE_TRACE_DISABLE;
42.
juliandyke.com© 2013 Julian
Dyke42 DBMS_MONITOR Client Identifiers Trace can be enabled for using client identifiers Useful when many sessions connect using the same Oracle user Useful with connection caches To set a client identifier use DBMS_SESSION.SET_IDENTIFIER e.g.: The client identifier is reported in V$SESSION.CLIENT_IDENTIFIER DBMS_SESSION.SET_IDENTIFIER ('CLIENT42'); To enable and disable trace for CLIENT42 use: DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE (CLIENT_ID => 'CLIENT42'); DBMS_MONITOR.CLIENT_ID_TRACE_DISABLE (CLIENT_ID => 'CLIENT42'); To enable and disable statistics collection for CLIENT42 use: DBMS_MONITOR.CLIENT_ID_STAT_ENABLE (CLIENT_ID => 'CLIENT42'); DBMS_MONITOR.CLIENT_ID_STAT_DISABLE (CLIENT_ID => 'CLIENT42'); Client statistics are reported in V$CLIENT_STATS
43.
juliandyke.com© 2013 Julian
Dyke43 DBMS_MONITOR Services, Modules & Actions Trace can be enabled for a specific service service and module service, module and action Current module and action reported by V$SESSION.MODULE V$SESSION.ACTION To specify a new action within the current module use: DBMS_APPLICATION_INFO.SET_ACTION (ACTION_NAME=> 'ACTION2'); DBMS_APPLICATION_INFO.SET_MODULE (MODULE_NAME => 'MODULE1', ACTION_NAME=> 'ACTION1'); To specify a module and action with a session use:
44.
juliandyke.com© 2013 Julian
Dyke44 DBMS_MONITOR Services, Modules & Actions To enable trace for use: To enable statistics collection use: DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE (SERVICE_NAME => 'SERVICE1',MODULE_NAME => 'MODULE1',ACTION_NAME => 'ACTION1‘); DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE (SERVICE_NAME => 'SERVICE1',MODULE_NAME => 'MODULE1‘); DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE (SERVICE_NAME => 'SERVICE1',MODULE_NAME => 'MODULE1',ACTION_NAME => 'ACTION1‘); DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE (SERVICE_NAME => 'SERVICE1',MODULE_NAME => 'MODULE1‘); DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE (SERVICE_NAME => 'SERVICE1'); DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE (SERVICE_NAME => 'SERVICE1'); Statistics are reported in V$SERV_MOD_ACT_STATS
45.
juliandyke.com© 2013 Julian
Dyke45 DBMS_MONITOR Row Source Statistics In Oracle 11.2 and above PLAN_STAT parameter is supported in: CLIENT_ID_TRACE_ENABLE DATABASE_TRACE_ENABLE SERV_MOD_ACT_TRACE_ENABLE SESSION_TRACE_ENABLE PLAN_STAT specifies frequency of row source statistic dumps. Can be: NEVER FIRST_EXECUTION (default) ALL_EXECUTIONS In Oracle 11.2 and above event 10046 level 16 also dumps row source statistics for all executions To dump binds + waits + statistics use event 10046 level 28 ALTER SESSION SET EVENTS ‘10046 trace name context forever, level 28’’;
46.
juliandyke.com© 2013 Julian
Dyke46 DBMS_MONITOR Interpreting Trace Use TKPROF to sort and filter the trace file Avoid re-explaining execution plans Use TRCSESS to merge trace files Useful with shared server (MTS) See Metalink Note: 39817.1 Interpreting Raw SQL_TRACE and DBMS_SUPPORT.START_TRACE output Describes contents of trace file See Optimizing Oracle Performance Cary Millsap & Jeff Holt (O'Reilly)
47.
juliandyke.com© 2013 Julian
Dyke47 Oracle Tools Dumps
48.
juliandyke.com© 2013 Julian
Dyke48 ORADEBUG Overview Undocumented SQL*Plus feature Requires SQLDBA privilege Allows session to connect to other processes and execute commands A process must be specified for many ORADEBUG commands using one of: ORADEBUG SETMYPID – connect to local process ORADEBUG SETORAPID – connect using Oracle process ID ORADEBUG SETOSPID – connect using OS pid All commands are prefixed with ORADEBUG To obtain a list of commands use ORADEBUG HELP New functionality is frequently added Review in each new release
49.
juliandyke.com© 2013 Julian
Dyke49 ORADEBUG Dumps To list of available dumps can be obtained using ORADEBUG DUMPLIST Most dumps can be performed by ORADEBUG ALTER SYSTEM ALTER SESSION Some dumps can be very useful for specific investigations Dumps are mostly undocumented 187 dumps listed in Oracle 11.2.0.3 Some dumps modify database Only use on non-production databases when requested by Oracle Support
50.
juliandyke.com© 2013 Julian
Dyke50 Memory Dumps Trace Dumps Memory dumps can be taken using ORADEBUG ALTER SYSTEM ALTER SESSION For example to dump fixed SGA including contents ALTER SESSION SET EVENTS 'immediate trace name global_area level 2‘; To dump summary of SGA heap use: ALTER SESSION SET EVENTS 'immediate trace name heapdump level 2‘; To dump contents of a specific SGA subheap use: ALTER SESSION SET EVENTS 'immediate trace name heapdump_addr level 2, addr <address>';
51.
juliandyke.com© 2013 Julian
Dyke51 File Dumps Redo Log Dumps To identify the current redo log use: SELECT member FROM v$logfile WHERE group# = ( SELECT group# FROM v$log WHERE status = 'CURRENT' ); To dump the contents of a redo log use: ALTER SYSTEM DUMP LOGFILE '<logfilename>'; Also works for archived log files
52.
juliandyke.com© 2013 Julian
Dyke52 File Dumps Redo Log Dumps Full syntax is: ALTER SYSTEM DUMP LOGFILE 'FileName' SCN MIN MinimumSCN SCN MAX MaximumSCN TIME MIN MinimumTime TIME MAX MaximumTime LAYER Layer OPCODE Opcode DBA MIN FileNumber . BlockNumber DBA MAX FileNumber . BlockNumber RBA MIN LogFileSequenceNumber . BlockNumber RBA MAX LogFileSequenceNumber . BlockNumber; See MOS Note 1031381.6 for further details
53.
juliandyke.com© 2013 Julian
Dyke53 File Dumps Block Dumps To dump a database block in Oracle 8.0 or above: ALTER SYSTEM DUMP DATAFILE <absolute_file_number> BLOCK <block_number>; ALTER SYSTEM DUMP DATAFILE <absolute_file_number> BLOCK MIN <minimum_block_number> BLOCK MAX <maximum_block_number>; To dump a range of database blocks: To dump a block from a datafile in a closed database: ALTER SYSTEM DUMP DATAFILE '<file_name>' BLOCK <block_number>;
54.
juliandyke.com© 2013 Julian
Dyke54 Internals
55.
juliandyke.com© 2013 Julian
Dyke Internals Overview Oracle dumps often include data. Common data types include VARCHAR2 CHAR NUMBER DATE ROWID Oracle dumps also include some common metadata structures including: SCN DBA UBA RBA SQLID Command Types Unix Time 55
56.
juliandyke.com© 2013 Julian
Dyke Internals Internal Data Type Each data type has an internal number Internal data type numbers appear in many structures and dumps e.g. bind variables Examples include: 56 Internal Type Description 1 VARCHAR2, NVARCHAR2 2 NUMBER 8 LONG 12 DATE 23 RAW 24 LONG RAW 58 ANYDATA 69 ROWID 96 CHAR, NCHAR 100 BINARY FLOAT 101 BINARY DOUBLE 111 XMLTYPE Internal Type Description 112 CLOB, NCLOB 113 BLOB 114 BFILE 121 TYPE (User-defined) 122 TYPE (TABLE OF RECORD) 123 TYPE (VARRAY) 180 TIMESTAMP 181 TIMESTAMP WITH TZ 182 INTERVAL YEAR TO MONTH 183 INTERVAL DAY TO SECOND 208 UROWID 231 TIMESTAMP WITH LOCAL TZ
57.
juliandyke.com© 2013 Julian
Dyke57 Internals Hexadecimal Conversions To convert from hexadecimal to decimal use TO_NUMBER with the 'XXXX' format mask e.g. SELECT TO_NUMBER (100,'XXX') FROM dual; TO_NUMBER(100,'XXX') -------------------- 256 To convert from decimal to hexadecimal use TO_CHAR with the 'XXXX' format mask e.g. SELECT TO_CHAR (256,'XXX') FROM dual; TO_NUMBER(256,'XXX') -------------------- 100
58.
juliandyke.com© 2013 Julian
Dyke Internals DUMP Function Column values can be dumped using the SQL DUMP function Syntax is: 58 FUNCTION DUMP (expr[,return_format[,start_position[,length]]]) where RETURN_FORMAT is: Format Description 8 Octal Notation 10 Decimal Notation 16 Hexadecimal Notation 17 Single Characters For example: SELECT DUMP (10000,16) FROM dual; DUMP(10000,16) ----------------- Typ=2 Len=2: c3,2
59.
juliandyke.com© 2013 Julian
Dyke Internals String Data Types VARCHAR2 (Internal Type 1) Stores characters plus length byte(s) e.g. “Ferrari” in a VARCHAR2(20) 59 Len F e r r a r i 07 46 65 72 72 61 72 69 CHAR (InternalType 96) Pads data with space characters e.g. “Ferrari” in a CHAR(20) Len F e r r a r i 07 46 65 72 72 61 72 69 20 20 20 20 20 20 20 20 20 20 20 20 20
60.
juliandyke.com© 2013 Julian
Dyke Internals NUMBER Data Type NUMBER (Internal Type 2) Oracle proprietary number format Platform independent representation Designed to ensure numbers collate Up to 38 bytes can be stored Numbers are stored as base-100 digits Each digit is increased by 1 to ensure non-zero Numbers prefixed by Sign bit Exponent 60 Number Value Positive Infinity FF 65 Zero 80 Negative Infinity 01 01 66
61.
juliandyke.com© 2013 Julian
Dyke Internals NUMBER Data Type Some examples: 61 Value Internal Representation 0 80 1 C1,02 2 C1,03 3 C1,04 8 C1,09 9 C1,0A 99 C1,64 100 C2,02 101 C2,02,02 102 C2,02,03 999 C2,02,64 1000 C2,0B 1001 C2,0B,2 Value Internal Representation 9999 C2,64,64 10000 C3,02 90000 C3,0A 100000 C3,0B -1 3E,64,66 -2 3E,63,66 -3 3E,62,66 -4 3E,61,66 -99 3E,2,66 -100 3D,64,66 -101 3D,64,64,66 -102 3D,64,63,66 -103 3D,64,62,66
62.
juliandyke.com© 2013 Julian
Dyke Internals DATE Data Type DATE (Internal Type 12) Oracle can store dates ranging from Jan 1, 4712BC to Dec 31 4712AD Dates are always stored in 7 byte values Always prefixed by (redundant) length byte Format is: 62 Byte Value 0 Year / 100 1 Year % 100 2 Month 3 Day 4 Hour 5 Minute 6 Second For example 26May2013 05:06:38 is Len 0 1 2 3 4 5 6 07 DD 07 05 1A 05 06 26
63.
juliandyke.com© 2013 Julian
Dyke63 Internals ROWID Data Type ROWID (Internal Type 69) Extended ROWIDs were introduced in Oracle 8.0 Use relative file number / block number / slot number Absolute file number derived from relative file number and tablespace number Can be accessed using DBMS_ROWID package Useful functions include: ROWID_RELATIVE_FNO ROWID_BLOCK_NUMBER ROWID_ROW_NUMBER ROWID_TO_ABSOLUTE_FNO
64.
juliandyke.com© 2013 Julian
Dyke64 Internals ROWID Data Type For example: SELECT ROWID, dbms_rowid.rowid_relative_fno (ROWID) AS "File Number", dbms_rowid.rowid_block_number (ROWID) AS "Block Number", dbms_rowid.rowid_row_number (ROWID) AS "Row Number" FROM gp.team; ROWID File Number Block Number Row Number ------------------ ----------- ------------ ---------- AAAR1GAAGAAAAR4AAA 6 1144 0 AAAR1GAAGAAAAR4AAB 6 1144 1 AAAR1GAAGAAAAR4AAC 6 1144 2 AAAR1GAAGAAAAR4AAD 6 1144 3 ......
65.
juliandyke.com© 2013 Julian
Dyke Internals Database Block Address Database Block Address (DBA) Address of block in database Always 32-bit value Even on 64 bit platform SMALLFILE tablespaces (default) Upper 10 bits represent relative file number Lower 22 bits represent block number For example if DBA is 0x01000227 65 BIGFILE tablespaces All 32 bits represent block number Some dumps / tools may not report DBA correctly File number = dba >> 22 = 4 Block number = dba & 0x3FFFFF = 551
66.
juliandyke.com© 2013 Julian
Dyke Internals SQLID 13 character representation of a 64-bit unsigned integer Uses a mapping of 32 characters to 0..31 Uses the characters 0-9 and a-z with the exception of e, i, l and o Used in Oracle 10.1 and above to identify SQL parent cursors Also used to generate database replay file names 5-bit characters in SQL ID map to 8 bit characters in unsigned integer Right to left Top bit of left hand word is not used
67.
juliandyke.com© 2013 Julian
Dyke Internals SQLID Conversion 0 1 2 3 4 5 6 7 00000 00001 00010 00011 00100 00101 00110 00111 8 9 a b c d f g 01000 01001 01010 01011 01100 01101 01110 01111 h j k m n p q r 10000 10001 10010 10011 10100 10101 10110 10111 s t u v w x y z 11000 11001 11010 11011 11100 11101 11110 11111 The following table shows the mapping between characters and byte values:
68.
juliandyke.com© 2013 Julian
Dyke Internals SQLID Conversion Example “6j02q68mxgzt4“ = 0xcdc4598000000001 6 j 0 2 q 6 8 m x g z t 4 00110 10001 00000 00010 10110 00110 01000 10011 11101 01111 11111 11001 00100 01101000 10000000 01010110 00110010 00100111 11010111 11111111 00100100 68 80 56 32 27 d7 ff 24
69.
juliandyke.com© 2013 Julian
Dyke Internals SQLID Conversion The following C function converts a 64-bit unsigned integer into a 13- character SQL ID void ConvertLongToSQLID (unsigned long l,char *s) { char *map = "0123456789abcdfghjkmnpqrstuvwxyz"; int i; for (i = 0;i < 13;i++) { unsigned long k = (l >> (60 - i * 5)) & 0x1F; s[i] = map[k]; } s[13] = 0; }
70.
juliandyke.com© 2013 Julian
Dyke Internals SQLID Conversion The following C function converts a 13-character SQL ID into a 64-bit unsigned integer void ConvertSQLIDToLong (char *s,unsigned long *l) { char *map = "0123456789abcdfghjkmnpqrstuvwxyz"; unsigned long res = 0; int i,j; for (i = 0;i < 13;i++) { for (j = 0;j < 32;j++) { if (s[i] == map[j]) break; } res = (res << 5) | j; } *l = res; }
71.
juliandyke.com© 2013 Julian
Dyke Internals Command Types Command types are listed the SYS.AUDIT_ACTIONS table Name Type ACTION NUMBER NAME VARCHAR2(28) Common actions include: Action Name 1 CREATE TABLE 2 INSERT 3 SELECT 6 UPDATE 7 DELETE 9 CREATE INDEX 10 DROP INDEX 12 DROP TABLE 17 GRANT OBJECT 19 CREATE SYNONYM
72.
juliandyke.com© 2013 Julian
Dyke Internals Unix Time Unix (POSIX) time – time in seconds since the Epoch Not counting leap seconds Epoch was midnight on 1st January 1970 To determine current Unix time on Linux: #include <stdio.h> #include <sys/time.h> main () { struct timeval tv; struct timezone tz; gettimeofday (&tv,&tz); printf ("Seconds = %ld (0x%lx)¥n",tv.tv_sec, tv.tv_sec); printf ("MicroSeconds = %ld (0x%lx)¥n",tv.tv_usec,tv.tv_usec); }
73.
juliandyke.com© 2013 Julian
Dyke73 Operating System Tools
74.
juliandyke.com© 2013 Julian
Dyke Operating System Tools strings and od On Unix and Linux useful operating system tools for investigations include: strings – print ASCII strings in a binary file default string length is 4 – may miss short strings use –n parameter to specify shorter minimum length e.g. –n 3 od – dumps blocks from a file in specified format Formats include: -c – ASCII characters or backslash escapes -d – Unsigned decimal 2-byte units -o – Octal 2 byte units -x – Hexadecimal 2 byte units 74
75.
juliandyke.com© 2013 Julian
Dyke75 Operating System Tools tcpdump Allows packets to be captured and displayed On busy systems packets can be stored in a file and examined subsequently Filters can be applied to Reduce number of packets captured Increase level of data captured Promiscuous - network packets between other network interfaces can be captured Based on libpcap Similar to snoop on Solaris Useful for investigating RAC interconnect traffic Oracle Streams packets
76.
juliandyke.com© 2013 Julian
Dyke76 Custom Tools
77.
juliandyke.com© 2013 Julian
Dyke Custom Tools If no suitable tools exist you can always develop your own…. C is the best language for most tools Oracle is developed in C Structures align better in C Avoids unnecessary indirection GNU compilers are usually available Ensure development platform is: Same architecture as target e.g. x86-64, SPARC, Itanium Same word size e.g. 32 or 64 bit Ensure correct compiler switches are specified Word size Word alignment 77
78.
juliandyke.com© 2013 Julian
Dyke Custom Tools RedoAnalyzer Analyses online redo log / archive redo log Summarizes redo generation by: undo / redo object operation Version specific Usually requires porting for different platforms LogMiner provides similar functionality LogMiner has high memory requirements RedoAnalyzer is less-intrusive RedoAnalyzer is faster 78
79.
juliandyke.com© 2013 Julian
Dyke Custom Tools Block Dumper Dumps database blocks Similar output format to ALTER SYSTEM DUMP command Can be adapted For example non-intrusive analysis of chaining and migration SGA Attach Attaches to shared memory Follows memory pointers from fixed SGA Dumps blocks of memory Dumps sessions, processes, parent and child cursors etc Dumps RAC structures Useful for research and for identifying bugs 79
80.
juliandyke.com© 2013 Julian
Dyke Custom Tools TCP Dump Based on libpmap Intercepts and dumps messages Useful for Clusterware / RAC research Oracle Streams research IO Performance Reads random blocks from large files Measures I/O rates Fine grained Allows I/O rate to be calculated for buffered I/O SAN cache SAN disk 80
81.
juliandyke.com© 2013 Julian
Dyke Custom Tools ReplayAnalyzer Extracts contents of database replay files (record and workload metadata) Writes output in pseudo-XML format Useful for understanding database capture – what is captured and what is omitted database replay – what can be replayed TrailAnalyzer Dumps contents of Oracle GoldenGate trail Very similar to Oracle GoldenGate logdump utility 81
82.
juliandyke.com© 2013 Julian
Dyke82 Thank you for listening info@juliandyke.com
83.
juliandyke.com© 2013 Julian
Dyke83 Backup
84.
juliandyke.com© 2013 Julian
Dyke84 Execution Plans AUTOTRACE Statistics reported are: Statistic Name recursive calls db block gets consistent gets physical reads redo size bytes sent via SQL*Net to client bytes received via SQL*Net from client SQL*Net roundtrips to/from client sorts(memory) sorts(disk) rows processed
85.
juliandyke.com© 2013 Julian
Dyke85 Execution Plans AUTOTRACE In Oracle 9.2 and below execution plan consists of four columns: Column Name Description ID_PLUS_EXP ID of execution step PARENT_ID_PLUS_EXP Parent ID of execution step PLAN_PLUS_EXP Execution step OBJECT_NODE_PLUS_EXP Database links or parallel query servers Output can optionally be suppressed e.g.: COLUMN PARENT_ID_PLUS_EXP NOPRINT For parallel and remote operations additional information is displayed in another section: Column Name Description OTHER_PLUS_EXP Shows the SQL query OTHER_TAG_PLUS_EXP Shows reason for OTHER_PLUS_EXP
86.
juliandyke.com© 2013 Julian
Dyke86 Parameters Parameter Types Parameter types are reported numerically in V$PARAMETER.TYPE X$KSPPI.KSPPITY Values are: Value Description 1 Boolean 2 String 3 Integer 4 File 6 Big Integer
87.
juliandyke.com© 2013 Julian
Dyke87 Parameters Optimizer Parameters Optimizer parameters are grouped in FID_QKSCESYROW For example in Oracle 11.1 FID_QKSCESYROW COUNT(*) QKSFM_ALL 101 QKSFM_CBO 71 QKSFM_CVM 1 QKSFM_EXECUTION 1 QKSFM_FBA 1 QKSFM_INDEX 1 QKSFM_JPPD 3 QKSFM_OR_EXPAND 1 QKSFM_PQ 6 QKSFM_STAR_TRANS 3 QKSFM_TRANSFORMATION 70
Baixar agora