SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
異なるデータベース間の SQL 比較と
Oracle Database 12c の新機能
Noriyoshi Shinoda
March 8, 2017
Oracle Database Connect 2017 / JPOUG
自己紹介
篠田典良(しのだのりよし)
– 所属
– 日本ヒューレット・パッカード株式会社 テクノロジーコンサルティング事業統括
– 現在の業務
– Oracle DatabaseをはじめPostgreSQL, Microsoft SQL Server, Vertica, Sybase
ASE等 RDBMS全般に関するシステムの設計、チューニング、コンサルティング
– Oracle ACE
– Oracle Database関連書籍の執筆
– オープンソース製品に関する調査、検証
– 関連する URL
– Oracle ACEってどんな人?
– http://www.oracle.com/technetwork/jp/database/articles/vivadeveloper/index-
1838335-ja.html
– 「PostgreSQL 虎の巻」シリーズ
– http://h30507.www3.hp.com/t5/user/viewprofilepage/user-id/838802
2
Agenda
– 自動採番列 (12.1)
– 文字列型の最大長 (12.1)
– FETCH n ROWS (12.1)
– オブジェクト名最大長 (12.2)
– 照合 (12.2)
– JSONデータ (12.1 / 12.2)
3
Oracle Database 12c新機能
4
Oracle Database 12c新機能
自動採番列
5
RDBMS 自動採番列の構文
MySQL AUTO_INCREMENT列属性
PostgreSQL serial, bigserial, smallserial型
DB2 GENERATE ALWAYS 列属性
SQL Server IDENTITY列属性
Vertica
AUTO_INCREMENT列属性
IDENTITY列属性
Oracle Database 12c新機能
自動採番列
6
– 実体は自動生成される SEQUENCE オブジェクトと DEFAULT の組み合わせ
– 利用するためには CREATE TABLE システム権限に加えて CREATE
SEQUENCE システム権限が必要
– Oracle Database 12c (12.1) から利用可能
– GENERATED ALWAYS AS IDENTITY 列属性
– 常に自動採番値を生成、更新不可
– GENERATED BY DEFAULT AS IDENTITY 列属性
– ユーザーが更新可能
SQL> CREATE TABLE idtbl1 (id NUMBER
GENERATED BY DEFAULT AS IDENTITY (START WITH 10),
val VARCHAR2(10)) ;
Oracle Database 12c新機能
文字列型最大長
7
RDBMS CHAR VARCHAR
MySQL 255 65,535
PostgreSQL 10,485,760 10,485,760
DB2 255 32,704
SQL Server 8,000 2 GB
Vertica 65,000 65,000
Oracle Database 11g (11.2) 2,000 4,000
Oracle Database 12c新機能
文字列型最大長
8
– Oracle Database 12c (12.1) から VARCHAR2 型 / NVARCHAR2 型 / RAW
型の最大長を 32,767 バイトに拡張可能
– CHAR / NCHAR 型の最大長はそのまま
– PL/SQL の最大長に合致
– 初期化パラメーター MAX_STRING_SIZE = EXTENDED が必要
– @?/rdbms/admin/utl32k.sql の実行
– @?/rdbms/admin/utlrp.sql の実行
– 再起動
– 一旦変更すると元に戻せない
– 初期化パラメーター COMPATIBLE >= 12.0.0.0 も必要
– 内部的には初期化パラメーター _scalar_type_lob_storage_threshold
(Default 2,000) を超えるデータはインライン BLOB 型に変換して保存
Oracle Database 12c新機能
FETCH n ROWS
9
RDBMS 最初の 10 レコード取得
MySQL LIMIT 10
PostgreSQL FETCH FIRST 10 ROWS ONLY
DB2 FETCH FIRST 10 ROWS ONLY
SQL Server
TOP 10
FETCH FIRST 10 ROWS ONLY
Vertica LIMIT 10
SELECT first_name, last_name, salary FROM (
SELECT first_name, last_name, salary,
ROW_NUMBER() OVER (ORDER BY salary DESC) ranking
FROM employees)
WHERE ranking <= 10
– Oracle Database 11g の記述
Oracle Database 12c新機能
FETCH n ROWS
10
– Oracle Database 12c (12.1) から OFFSET n ROWS FETCH FIRST m
ROWS ONLY 構文が利用可能
SQL> SELECT first_name, last_name, salary FROM employees
ORDER BY salary DESC
FETCH FIRST 10 ROWS ONLY ;
– OFFSET n ROWS 句を指定して途中を抜き出すこともできる
– 実行計画を確認すると内部的には ROW_NUMBER 関数を使っている
1 - filter("from$_subquery$_002"."rowlimit_$$_rownumber"<=10)
2 - filter(ROW_NUMBER() OVER (
ORDER BY "EMPLOYEES".“SALARY" )<=10)
Oracle Database 12c新機能
オブジェクト名最大長
11
RDBMS 最大長
MySQL 64 char
PostgreSQL 63 bytes
DB2 128 bytes
SQL Server 128 char
Vertica 128 bytes
Oracle Database 12c (12.1) 30 bytes
– 主要 RDBMS のオブジェクト名の最大長
Oracle Database 12c新機能
オブジェクト名最大長
12
– V$PDBS ビューの NAME 列, DBA_PDBS ビューの PDB_NAME 列は 128
バイトだが?
オブジェクト 最大長
データベース名 8 bytes
表領域名 30 bytes
サービス名 64 bytes
ASMディスクグループ 30 bytes
PDB名 30 bytes
– Oracle Database 12c (12.2) から主なオブジェクトの最大長は 128 バイト
– 初期化パラメーター COMPATIBLE >= 12.2 が必要
– 以下は例外
Oracle Database 12c新機能
照合(COLLATION)
13
– 日本語環境で標準インストールした場合
– 文字列型による大文字/小文字の区別
RDBMS 大文字/小文字区別 列単位に変更
MySQL しない ○
PostgreSQL する ×
DB2 する ×
SQL Server しない ○
Vertica する ×
Oracle Database 12c (12.1) する ×
– Oracle Database のデフォルトは初期化パラメーター NLS_COMP,
NLS_SORT に依存
Oracle Database 12c新機能
照合(COLLATION)
14
– 使用条件
– 初期化パラメーター COMPATIBLE >= 12.2
– 初期化パラメーター MAX_STRING_SIZE=EXTENDED
– Oracle Database 12c (12.2) では列/テーブル単位に COLLATE 指定可能
– 確認方法は ALL_TAB_COLUMNS ビューの COLLATION 列、ALL_TABLES ビューの
DEFAULT_COLLATION 列
SQL> CREATE TABLE table_name1 (val VARCHAR2(10))
DEFAULT COLLATION BINARY_AI ;
SQL> CREATE TABLE table_name2 (id NUMERIC,
val VARCHAR2(10) COLATE BINARY_CI) ;
Oracle Database 12c新機能
照合(COLLATION)
15
SQL> CREATE TABLE collate1 (col1 VARCHAR2(10),
col2 VARCHAR2(10) COLLATE BINARY_CI) ;
SQL> INSERT INTO collate1 VALUES ('ABC', 'ABC') ;
SQL> INSERT INTO collate1 VALUES ('abc' 'abc') ;
SQL> SELECT * FROM collate1 WHERE col1='abc' ;
COL1 COL2
---------- ----------
abc abc
SQL> SELECT * FROM collate1 WHERE col2='abc' ;
COL1 COL2
---------- ----------
ABC ABC
abc abc
Oracle Database 12c新機能
照合(COLLATION)
16
SQL> SELECT * FROM collate1 c1 INNER JOIN collate2 c2 ON
c1.col1 = c2.col2 ;
SELECT * FROM collate1 c1 INNER JOIN collate2 c2 ON
c1.col1 = c2.col2
*
行1でエラーが発生しました。:
ORA-43915: 照合を決定できません: 引数に競合する照合があります
– COLLATION が異なる列は直接結合できない
SQL> SELECT * FROM collate1 c1 INNER JOIN collate2 c2 ON
c1.col1 COLLATE BINARY_CI = c2.col2 ;
– COLLATION を合わせてから結合する
Oracle Database 12c新機能
照合(COLLATION)
17
SQL> SELECT * FROM collate1 WHERE col2='ABC' ;
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(NLSSORT("COL2",'nls_sort=''BINARY_CI''')=HEXTORAW('61626300'))
– 実行計画を確認すると、自動的に NLSSORT 関数を実行している
Oracle Database 12c新機能
JSONデータ対応
18
RDBMS データ型 関数 演算子
MySQL JSON ○ ○
PostgreSQL
JSON,
JSONB
○ ○
DB2 - ○ -
SQL Server - ○ -
Vertica - ○ ○
Oracle Database 12c (12.1) - ○ -
– Oracle Database 12c (12.2) では、JSON データを生成する関数、パッケー
ジが追加された
Oracle Database 12c新機能
JSONデータ対応
19
– JSON 専用のデータ型は未提供(VARCHAR2, CLOB を利用)
– 条件式が利用可能
– IS JSON / IS NOT JSON
– JSON_EXISTS
– JSON_TEXTCONTAINS
– 関数
– JSON_ARRAY / JSON_ARRAYAGG (12.2)
– JSON_DATAGUIDE (12.2)
– JSON_OBJECT / JSON_OBJECTAGG (12.2)
– JSON_QUERY
– JSON_TABLE
– JSON_VALUE
– DBMS_JSON パッケージ (12.2)
– CREATE SEARCH INDEX FOR JSON
Oracle Database 12c新機能
JSONデータ対応
20
SQL> SELECT JSON_ARRAY (
2 JSON_OBJECT('Percentage' VALUE .30),
3 JSON_ARRAY('A', 'B', 'C')
4 ) FROM DUAL ;
JSON_ARRAY(JSON_OBJECT('PERCENTAGE'VALUE.30),JSON_ARRAY('A
','B','C'))
--------------------------------------------------------------------------------
[{"Percentage":0.3},["A","B","C"]]
SQL>
– JSON データ生成関数が追加(12.2)
新機能の情報
21
新機能の情報
マニュアル
– 新機能ガイド
– 各マニュアルの先頭部分
22
Thank you
noriyoshi.shinoda@hpe.com
23

Weitere ähnliche Inhalte

Was ist angesagt?

[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付きInsight Technology, Inc.
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Noriyoshi Shinoda
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 FukuokaPostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 FukuokaShigeru Hanada
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009Ryota Watabe
 
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1Shogo Wakayama
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubJpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubToshi Harada
 
Oracle how-to-audit-backup
Oracle how-to-audit-backupOracle how-to-audit-backup
Oracle how-to-audit-backupDaiki Mogmet Ito
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishYohei Azekatsu
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~Ryota Watabe
 
Microsoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップ
Microsoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップMicrosoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップ
Microsoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップQlikPresalesJapan
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017Shigeru Hanada
 
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016 Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016 Ryota Watabe
 
Pg14_sql_standard_function_body
Pg14_sql_standard_function_bodyPg14_sql_standard_function_body
Pg14_sql_standard_function_bodykasaharatt
 
Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門だいすけ さとう
 
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会Satoshi Nagayasu
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...Insight Technology, Inc.
 

Was ist angesagt? (18)

[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 FukuokaPostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubJpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
 
Oracle how-to-audit-backup
Oracle how-to-audit-backupOracle how-to-audit-backup
Oracle how-to-audit-backup
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publish
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 
Microsoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップ
Microsoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップMicrosoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップ
Microsoft SQL Serverソースエンドポイント-スタンドアロン環境での非sysadminユーザーのセットアップ
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017
 
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016 Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
 
Pg14_sql_standard_function_body
Pg14_sql_standard_function_bodyPg14_sql_standard_function_body
Pg14_sql_standard_function_body
 
Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門
 
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
 

Andere mochten auch

Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Ryota Watabe
 
監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜Michitoshi Yoshida
 
PostgreSQL Internals (1) for PostgreSQL 9.6 (English)
PostgreSQL Internals (1) for PostgreSQL 9.6 (English)PostgreSQL Internals (1) for PostgreSQL 9.6 (English)
PostgreSQL Internals (1) for PostgreSQL 9.6 (English)Noriyoshi Shinoda
 
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜Michitoshi Yoshida
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2Ryota Watabe
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦CO-Sol for Community
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違いバックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違いRyota Watabe
 
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15歩 柴田
 
Oracle Database Overview
Oracle Database OverviewOracle Database Overview
Oracle Database Overviewhonglee71
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShellAmazon Web Services Japan
 
Oracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - OverviewOracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - OverviewMarkus Michalewicz
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイントMasayuki Ozawa
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由Yohei Azekatsu
 
Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Kentaro Kitagawa
 
Using the PostgreSQL Extension Ecosystem for Advanced Analytics
Using the PostgreSQL Extension Ecosystem for Advanced AnalyticsUsing the PostgreSQL Extension Ecosystem for Advanced Analytics
Using the PostgreSQL Extension Ecosystem for Advanced AnalyticsChartio
 

Andere mochten auch (15)

Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
 
監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜
 
PostgreSQL Internals (1) for PostgreSQL 9.6 (English)
PostgreSQL Internals (1) for PostgreSQL 9.6 (English)PostgreSQL Internals (1) for PostgreSQL 9.6 (English)
PostgreSQL Internals (1) for PostgreSQL 9.6 (English)
 
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違いバックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
 
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
 
Oracle Database Overview
Oracle Database OverviewOracle Database Overview
Oracle Database Overview
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
 
Oracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - OverviewOracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - Overview
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由
 
Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話
 
Using the PostgreSQL Extension Ecosystem for Advanced Analytics
Using the PostgreSQL Extension Ecosystem for Advanced AnalyticsUsing the PostgreSQL Extension Ecosystem for Advanced Analytics
Using the PostgreSQL Extension Ecosystem for Advanced Analytics
 

Ähnlich wie Oracle Database Connect 2017 / JPOUG#1

PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationNoriyoshi Shinoda
 
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかSQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかyancya
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517akirahiguchi
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!yoyamasaki
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説Masahiko Sawada
 
DB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works ApplicationsDB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works Applications2t3
 
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyauroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyaKenichi Hoshi
 
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)Hadoop / Spark Conference Japan
 
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...オラクルユニバーシティ
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10Toshi Harada
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0Ryusuke Kajiyama
 
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~オラクルエンジニア通信
 
Microsoft Azure - SQL Data Warehouse
Microsoft Azure - SQL Data WarehouseMicrosoft Azure - SQL Data Warehouse
Microsoft Azure - SQL Data WarehouseMicrosoft
 
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Kazuaki Ishizaki
 
activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介Kevin Toyoda
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理土岐 孝平
 
RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会Nao Minami
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10Toshi Harada
 
MariaDB migration from commercial database
MariaDB migration from commercial databaseMariaDB migration from commercial database
MariaDB migration from commercial databaseGOTO Satoru
 

Ähnlich wie Oracle Database Connect 2017 / JPOUG#1 (20)

PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかSQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
DB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works ApplicationsDB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works Applications
 
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyauroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
 
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
 
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
 
Microsoft Azure - SQL Data Warehouse
Microsoft Azure - SQL Data WarehouseMicrosoft Azure - SQL Data Warehouse
Microsoft Azure - SQL Data Warehouse
 
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
 
activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
 
MariaDB migration from commercial database
MariaDB migration from commercial databaseMariaDB migration from commercial database
MariaDB migration from commercial database
 

Mehr von Noriyoshi Shinoda

Citus 10 verification result (Japanese)
Citus 10 verification result (Japanese)Citus 10 verification result (Japanese)
Citus 10 verification result (Japanese)Noriyoshi Shinoda
 
PostgreSQL 14 Beta1 New Features with Examples (Japanese)
PostgreSQL 14 Beta1 New Features with Examples (Japanese)PostgreSQL 14 Beta1 New Features with Examples (Japanese)
PostgreSQL 14 Beta1 New Features with Examples (Japanese)Noriyoshi Shinoda
 
PostgreSQL 14 Beta 1 New Features with Examples (English)
PostgreSQL 14 Beta 1 New Features with Examples (English)PostgreSQL 14 Beta 1 New Features with Examples (English)
PostgreSQL 14 Beta 1 New Features with Examples (English)Noriyoshi Shinoda
 
PostgreSQL 12 New Features with Examples (English) GA
PostgreSQL 12 New Features with Examples (English) GAPostgreSQL 12 New Features with Examples (English) GA
PostgreSQL 12 New Features with Examples (English) GANoriyoshi Shinoda
 
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)Noriyoshi Shinoda
 
PostgreSQL 12 Beta 1 New Features with Examples (English)
PostgreSQL 12 Beta 1 New Features with Examples (English)PostgreSQL 12 Beta 1 New Features with Examples (English)
PostgreSQL 12 Beta 1 New Features with Examples (English)Noriyoshi Shinoda
 
Let's scale-out PostgreSQL using Citus (English)
Let's scale-out PostgreSQL using Citus (English)Let's scale-out PostgreSQL using Citus (English)
Let's scale-out PostgreSQL using Citus (English)Noriyoshi Shinoda
 
PostgreSQL 11 New Features With Examples (Japanese)
PostgreSQL 11 New Features With Examples (Japanese)PostgreSQL 11 New Features With Examples (Japanese)
PostgreSQL 11 New Features With Examples (Japanese)Noriyoshi Shinoda
 
PostgreSQL 11 New Features With Examples (English)
PostgreSQL 11 New Features With Examples (English)PostgreSQL 11 New Features With Examples (English)
PostgreSQL 11 New Features With Examples (English)Noriyoshi Shinoda
 
PostgreSQL 11 New Features Japanese version (Beta 1)
PostgreSQL 11 New Features Japanese version (Beta 1)PostgreSQL 11 New Features Japanese version (Beta 1)
PostgreSQL 11 New Features Japanese version (Beta 1)Noriyoshi Shinoda
 
PostgreSQL 11 New Features English version (Beta 1)
PostgreSQL 11 New Features English version (Beta 1)PostgreSQL 11 New Features English version (Beta 1)
PostgreSQL 11 New Features English version (Beta 1)Noriyoshi Shinoda
 
PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)Noriyoshi Shinoda
 
PostgreSQL 10 New Features (English)
PostgreSQL 10 New Features (English)PostgreSQL 10 New Features (English)
PostgreSQL 10 New Features (English)Noriyoshi Shinoda
 
PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)Noriyoshi Shinoda
 

Mehr von Noriyoshi Shinoda (16)

Citus 10 verification result (Japanese)
Citus 10 verification result (Japanese)Citus 10 verification result (Japanese)
Citus 10 verification result (Japanese)
 
PostgreSQL 14 Beta1 New Features with Examples (Japanese)
PostgreSQL 14 Beta1 New Features with Examples (Japanese)PostgreSQL 14 Beta1 New Features with Examples (Japanese)
PostgreSQL 14 Beta1 New Features with Examples (Japanese)
 
PostgreSQL 14 Beta 1 New Features with Examples (English)
PostgreSQL 14 Beta 1 New Features with Examples (English)PostgreSQL 14 Beta 1 New Features with Examples (English)
PostgreSQL 14 Beta 1 New Features with Examples (English)
 
PostgreSQL 12 New Features with Examples (English) GA
PostgreSQL 12 New Features with Examples (English) GAPostgreSQL 12 New Features with Examples (English) GA
PostgreSQL 12 New Features with Examples (English) GA
 
EDB Postgres Vision 2019
EDB Postgres Vision 2019 EDB Postgres Vision 2019
EDB Postgres Vision 2019
 
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)
 
PostgreSQL 12 Beta 1 New Features with Examples (English)
PostgreSQL 12 Beta 1 New Features with Examples (English)PostgreSQL 12 Beta 1 New Features with Examples (English)
PostgreSQL 12 Beta 1 New Features with Examples (English)
 
Let's scale-out PostgreSQL using Citus (English)
Let's scale-out PostgreSQL using Citus (English)Let's scale-out PostgreSQL using Citus (English)
Let's scale-out PostgreSQL using Citus (English)
 
PostgreSQL 11 New Features With Examples (Japanese)
PostgreSQL 11 New Features With Examples (Japanese)PostgreSQL 11 New Features With Examples (Japanese)
PostgreSQL 11 New Features With Examples (Japanese)
 
PostgreSQL 11 New Features With Examples (English)
PostgreSQL 11 New Features With Examples (English)PostgreSQL 11 New Features With Examples (English)
PostgreSQL 11 New Features With Examples (English)
 
Citus 7.5 Beta 検証結果
Citus 7.5 Beta 検証結果Citus 7.5 Beta 検証結果
Citus 7.5 Beta 検証結果
 
PostgreSQL 11 New Features Japanese version (Beta 1)
PostgreSQL 11 New Features Japanese version (Beta 1)PostgreSQL 11 New Features Japanese version (Beta 1)
PostgreSQL 11 New Features Japanese version (Beta 1)
 
PostgreSQL 11 New Features English version (Beta 1)
PostgreSQL 11 New Features English version (Beta 1)PostgreSQL 11 New Features English version (Beta 1)
PostgreSQL 11 New Features English version (Beta 1)
 
PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)
 
PostgreSQL 10 New Features (English)
PostgreSQL 10 New Features (English)PostgreSQL 10 New Features (English)
PostgreSQL 10 New Features (English)
 
PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)
 

Oracle Database Connect 2017 / JPOUG#1

  • 1. 異なるデータベース間の SQL 比較と Oracle Database 12c の新機能 Noriyoshi Shinoda March 8, 2017 Oracle Database Connect 2017 / JPOUG
  • 2. 自己紹介 篠田典良(しのだのりよし) – 所属 – 日本ヒューレット・パッカード株式会社 テクノロジーコンサルティング事業統括 – 現在の業務 – Oracle DatabaseをはじめPostgreSQL, Microsoft SQL Server, Vertica, Sybase ASE等 RDBMS全般に関するシステムの設計、チューニング、コンサルティング – Oracle ACE – Oracle Database関連書籍の執筆 – オープンソース製品に関する調査、検証 – 関連する URL – Oracle ACEってどんな人? – http://www.oracle.com/technetwork/jp/database/articles/vivadeveloper/index- 1838335-ja.html – 「PostgreSQL 虎の巻」シリーズ – http://h30507.www3.hp.com/t5/user/viewprofilepage/user-id/838802 2
  • 3. Agenda – 自動採番列 (12.1) – 文字列型の最大長 (12.1) – FETCH n ROWS (12.1) – オブジェクト名最大長 (12.2) – 照合 (12.2) – JSONデータ (12.1 / 12.2) 3
  • 5. Oracle Database 12c新機能 自動採番列 5 RDBMS 自動採番列の構文 MySQL AUTO_INCREMENT列属性 PostgreSQL serial, bigserial, smallserial型 DB2 GENERATE ALWAYS 列属性 SQL Server IDENTITY列属性 Vertica AUTO_INCREMENT列属性 IDENTITY列属性
  • 6. Oracle Database 12c新機能 自動採番列 6 – 実体は自動生成される SEQUENCE オブジェクトと DEFAULT の組み合わせ – 利用するためには CREATE TABLE システム権限に加えて CREATE SEQUENCE システム権限が必要 – Oracle Database 12c (12.1) から利用可能 – GENERATED ALWAYS AS IDENTITY 列属性 – 常に自動採番値を生成、更新不可 – GENERATED BY DEFAULT AS IDENTITY 列属性 – ユーザーが更新可能 SQL> CREATE TABLE idtbl1 (id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 10), val VARCHAR2(10)) ;
  • 7. Oracle Database 12c新機能 文字列型最大長 7 RDBMS CHAR VARCHAR MySQL 255 65,535 PostgreSQL 10,485,760 10,485,760 DB2 255 32,704 SQL Server 8,000 2 GB Vertica 65,000 65,000 Oracle Database 11g (11.2) 2,000 4,000
  • 8. Oracle Database 12c新機能 文字列型最大長 8 – Oracle Database 12c (12.1) から VARCHAR2 型 / NVARCHAR2 型 / RAW 型の最大長を 32,767 バイトに拡張可能 – CHAR / NCHAR 型の最大長はそのまま – PL/SQL の最大長に合致 – 初期化パラメーター MAX_STRING_SIZE = EXTENDED が必要 – @?/rdbms/admin/utl32k.sql の実行 – @?/rdbms/admin/utlrp.sql の実行 – 再起動 – 一旦変更すると元に戻せない – 初期化パラメーター COMPATIBLE >= 12.0.0.0 も必要 – 内部的には初期化パラメーター _scalar_type_lob_storage_threshold (Default 2,000) を超えるデータはインライン BLOB 型に変換して保存
  • 9. Oracle Database 12c新機能 FETCH n ROWS 9 RDBMS 最初の 10 レコード取得 MySQL LIMIT 10 PostgreSQL FETCH FIRST 10 ROWS ONLY DB2 FETCH FIRST 10 ROWS ONLY SQL Server TOP 10 FETCH FIRST 10 ROWS ONLY Vertica LIMIT 10 SELECT first_name, last_name, salary FROM ( SELECT first_name, last_name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) ranking FROM employees) WHERE ranking <= 10 – Oracle Database 11g の記述
  • 10. Oracle Database 12c新機能 FETCH n ROWS 10 – Oracle Database 12c (12.1) から OFFSET n ROWS FETCH FIRST m ROWS ONLY 構文が利用可能 SQL> SELECT first_name, last_name, salary FROM employees ORDER BY salary DESC FETCH FIRST 10 ROWS ONLY ; – OFFSET n ROWS 句を指定して途中を抜き出すこともできる – 実行計画を確認すると内部的には ROW_NUMBER 関数を使っている 1 - filter("from$_subquery$_002"."rowlimit_$$_rownumber"<=10) 2 - filter(ROW_NUMBER() OVER ( ORDER BY "EMPLOYEES".“SALARY" )<=10)
  • 11. Oracle Database 12c新機能 オブジェクト名最大長 11 RDBMS 最大長 MySQL 64 char PostgreSQL 63 bytes DB2 128 bytes SQL Server 128 char Vertica 128 bytes Oracle Database 12c (12.1) 30 bytes – 主要 RDBMS のオブジェクト名の最大長
  • 12. Oracle Database 12c新機能 オブジェクト名最大長 12 – V$PDBS ビューの NAME 列, DBA_PDBS ビューの PDB_NAME 列は 128 バイトだが? オブジェクト 最大長 データベース名 8 bytes 表領域名 30 bytes サービス名 64 bytes ASMディスクグループ 30 bytes PDB名 30 bytes – Oracle Database 12c (12.2) から主なオブジェクトの最大長は 128 バイト – 初期化パラメーター COMPATIBLE >= 12.2 が必要 – 以下は例外
  • 13. Oracle Database 12c新機能 照合(COLLATION) 13 – 日本語環境で標準インストールした場合 – 文字列型による大文字/小文字の区別 RDBMS 大文字/小文字区別 列単位に変更 MySQL しない ○ PostgreSQL する × DB2 する × SQL Server しない ○ Vertica する × Oracle Database 12c (12.1) する × – Oracle Database のデフォルトは初期化パラメーター NLS_COMP, NLS_SORT に依存
  • 14. Oracle Database 12c新機能 照合(COLLATION) 14 – 使用条件 – 初期化パラメーター COMPATIBLE >= 12.2 – 初期化パラメーター MAX_STRING_SIZE=EXTENDED – Oracle Database 12c (12.2) では列/テーブル単位に COLLATE 指定可能 – 確認方法は ALL_TAB_COLUMNS ビューの COLLATION 列、ALL_TABLES ビューの DEFAULT_COLLATION 列 SQL> CREATE TABLE table_name1 (val VARCHAR2(10)) DEFAULT COLLATION BINARY_AI ; SQL> CREATE TABLE table_name2 (id NUMERIC, val VARCHAR2(10) COLATE BINARY_CI) ;
  • 15. Oracle Database 12c新機能 照合(COLLATION) 15 SQL> CREATE TABLE collate1 (col1 VARCHAR2(10), col2 VARCHAR2(10) COLLATE BINARY_CI) ; SQL> INSERT INTO collate1 VALUES ('ABC', 'ABC') ; SQL> INSERT INTO collate1 VALUES ('abc' 'abc') ; SQL> SELECT * FROM collate1 WHERE col1='abc' ; COL1 COL2 ---------- ---------- abc abc SQL> SELECT * FROM collate1 WHERE col2='abc' ; COL1 COL2 ---------- ---------- ABC ABC abc abc
  • 16. Oracle Database 12c新機能 照合(COLLATION) 16 SQL> SELECT * FROM collate1 c1 INNER JOIN collate2 c2 ON c1.col1 = c2.col2 ; SELECT * FROM collate1 c1 INNER JOIN collate2 c2 ON c1.col1 = c2.col2 * 行1でエラーが発生しました。: ORA-43915: 照合を決定できません: 引数に競合する照合があります – COLLATION が異なる列は直接結合できない SQL> SELECT * FROM collate1 c1 INNER JOIN collate2 c2 ON c1.col1 COLLATE BINARY_CI = c2.col2 ; – COLLATION を合わせてから結合する
  • 17. Oracle Database 12c新機能 照合(COLLATION) 17 SQL> SELECT * FROM collate1 WHERE col2='ABC' ; Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(NLSSORT("COL2",'nls_sort=''BINARY_CI''')=HEXTORAW('61626300')) – 実行計画を確認すると、自動的に NLSSORT 関数を実行している
  • 18. Oracle Database 12c新機能 JSONデータ対応 18 RDBMS データ型 関数 演算子 MySQL JSON ○ ○ PostgreSQL JSON, JSONB ○ ○ DB2 - ○ - SQL Server - ○ - Vertica - ○ ○ Oracle Database 12c (12.1) - ○ - – Oracle Database 12c (12.2) では、JSON データを生成する関数、パッケー ジが追加された
  • 19. Oracle Database 12c新機能 JSONデータ対応 19 – JSON 専用のデータ型は未提供(VARCHAR2, CLOB を利用) – 条件式が利用可能 – IS JSON / IS NOT JSON – JSON_EXISTS – JSON_TEXTCONTAINS – 関数 – JSON_ARRAY / JSON_ARRAYAGG (12.2) – JSON_DATAGUIDE (12.2) – JSON_OBJECT / JSON_OBJECTAGG (12.2) – JSON_QUERY – JSON_TABLE – JSON_VALUE – DBMS_JSON パッケージ (12.2) – CREATE SEARCH INDEX FOR JSON
  • 20. Oracle Database 12c新機能 JSONデータ対応 20 SQL> SELECT JSON_ARRAY ( 2 JSON_OBJECT('Percentage' VALUE .30), 3 JSON_ARRAY('A', 'B', 'C') 4 ) FROM DUAL ; JSON_ARRAY(JSON_OBJECT('PERCENTAGE'VALUE.30),JSON_ARRAY('A ','B','C')) -------------------------------------------------------------------------------- [{"Percentage":0.3},["A","B","C"]] SQL> – JSON データ生成関数が追加(12.2)