Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Oracle on Windows• 参考資料、コラム(オラクル都市伝説)、イベント・セミナー情報 etc
• http://www.oracle.co.jp/campaign/mb_tech/
Windows Server System Center / OTN Japan• http://www.oracle.com/technology/global/jp/tech/windows/
.NET + Oracle Database• .NET Developer Center / OTN Japan
http://www.oracle.com/technology/global/jp/tech/dotnet/
意外と簡単 ? O / O• 意外と簡単!? .NETでOracle / OTN Japanhttp://www.oracle.com/technology/global/jp/columns/easy/dotnet/
1Copyright© 2010, Oracle. All rights reserved.
オラクル都市伝説 / Oracle on Windows– http://www.oracle.co.jp/campaign/mb_tech/column/– シーズン2 連載中!
其の一:地獄からの生還本当にあった怖い話
其の二:喪われた時間を取り戻せ!ある男の過ち
其の三 ベテラ ジ アの魂がデ タベ に宿る其の三:ベテランエンジニアの魂がデータベースに宿る
其の四:本当にオラクルデータベースを選択すると「ソースコードがスリム」になるのか?を徹底検証リ 」 なる を徹底検証
2Copyright© 2010, Oracle. All rights reserved.
Oracle Direct Seminar
<写真欄>
NET + Oracle データベース開発 超入門
日本オラクル株式会社
.NET + Oracle デ タベ ス開発 超入門~.NET アプリケーション開発 初めの一歩~
日本オラクル株式会社
Agenda
.NET + Oracle 開発環境の準備アプリ開発の進め方アプリ開発の進め方
アプリの配布
Appendix: .NETチューニング
4Copyright© 2010, Oracle. All rights reserved.
Visual Studioと融合Oracle Data Access ComponentsOracle Data Access Components
開発作業 配布C++ / C#VB.NETアプリケ シ ン
IIS(ASP/ASP.NET)MTS/COM
Oracle Developer Tools for Visual Studio .NET(ODT)
IISデータベース接続
アプリケーションMicrosoftVisual Studio
アプリケーション
ストアド開発作業 データベース接続
Oracle Data Provider for .NET(ODP.NET)
Oracle Services for MTS
Oracle DatabaseExtensions for .NET(ODE.NET)
Oracle Services for MTS
Visual Studio 2005 2008および NET Framework 2 0/3 xに対応Visual Studio 2005, 2008 および.NET Framework 2.0/3.xに対応
5Copyright© 2010, Oracle. All rights reserved.
ODP NETODP.NETー NETからOracleへの接続 ーNETからOracleへの接続
6Copyright© 2010, Oracle. All rights reserved.
ODP.NET概要
2002年より提供開始データベースサーバーのプラットフォームを選びません
VS NET 2003および2005 2008に対応VS.NET 2003および2005, 2008に対応.NET Framework 1.0以上に対応ADO NETに準拠したデ タプ パイダADO.NETに準拠したデータプロパイダOracleに特化したデータプロバイダのため、パフォーマンス、機能面で優れている
7Copyright© 2010, Oracle. All rights reserved.
ODP.NETの入手とインストール
ODP.NETはOracleデータベースのインストールCDに含まれてO はO ac eデ タ スのインスト ルC に含まれています
最新版はOTN-Jから入手可能です– http://www.oracle.com/technology/global/jp/tec
h/dotnet/index.html – Oracleデータベースのライセンスに準じて利用可能です
ODTをインストールすると自動的にODP.NETのインストールとODTをインスト ルすると自動的にODP.NETのインスト ルとVS.NETの環境構成が行われます
8Copyright© 2010, Oracle. All rights reserved.
各コンポーネントのダウンロード
OTN-J .NET Developer Centerからダウンロード可能
9Copyright© 2010, Oracle. All rights reserved.
p
Oracle Data Access Components (ODAC)のインストール
ODP.NET, ODTを使用するにはODACをインストール
10Copyright© 2010, Oracle. All rights reserved.
Oracle Data Access Components (ODAC)のインストール
Oracle Universal Installerを利用したGUIインストール
11Copyright© 2010, Oracle. All rights reserved.
Oracle Universal Installerを利用したGUIインスト ル
Agenda
.NET + Oracle 開発環境の準備アプリ開発の進め方アプリ開発の進め方
アプリの配布
Appendix: .NETチューニング
12Copyright© 2010, Oracle. All rights reserved.
ODTODTー Visual StudioからOracleの管理 ー
13Copyright© 2010, Oracle. All rights reserved.
ODT概要
Oracle ExplorerDB内部をツリ 構造で表示DB内部をツリー構造で表示すべての機能の出発点
ウィザードとデザイナウィザ ドとデザイナオブジェクトの追加/編集が簡単
PL/SQLエディタデバ グPL/SQLのデバッグも可能
Data Windowテストデータの確認/編集に便利テストデータの確認/編集に便利
Oracle Query WindowSQL*Plus代わりに使えるツール
14Copyright© 2010, Oracle. All rights reserved.
ODT機能概要
Oracleエクスプローラデザイナ およびウ ザ ドデザイナーおよびウィザード
自動コード生成
PL/SQLエディタOracleデータウィンドウOracle問合せウィンドウOracleプロジェクトOracleプロジェクト統合ヘルプ
15Copyright© 2010, Oracle. All rights reserved.
Oracle エクスプローラを利用した開発
OracleエクスプローラからOracleデータベースに格納されているオブジェクトを全て管理Oracle クスプロ ラからOracleデ タ スに格納されているオブジェクトを全て管理
16Copyright© 2010, Oracle. All rights reserved.
PL/SQLストアドプロシージャの開発
PL/SQLエディタでコード補完、エラー内容の確認PL/SQLエディタでコ ド補完、エラ 内容の確認
17Copyright© 2010, Oracle. All rights reserved.
PL/SQLストアドプロシージャのデバッグ
Visual Studioのデバッグ機能を利用したPL/SQLストアドプロシージャのデバッグVisual Studioのデバッグ機能を利用したPL/SQLストアドプロシ ジャのデバッグ
18Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0 新機能 – ODT
Server Explorerへの統合Oracle Databaseプロジェクトユーザ定義型
SQL*PlusスクリプトSQ usスクリプト問合わせウィンドウの拡張
19Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0 新機能 – ODT
Server Explorerへの統合– Visual Studio 2005のServer ExplorerにODTの機能を統合– Visual Studio 2005が提供する各種デザイナーやウィザード、ドラッグ・アンド・ドロップの操作に対応グ・アンド・ドロップの操作に対応
Oracle Databaseプロジェクト– 複数のSQLスクリプトを管理するためのプロジェクトが新たに提供– 複数のSQLスクリプトを管理するためのプロジェクトが新たに提供– Visual Studioで使用可能なソース管理機能と連携
20Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0 新機能 – ODTユーザ定義型
– 「ユーザ定義型」ノードが追加され、ユーザ定義型の作成や確認がユ ザ定義型」ノ ドが追加され、ユ ザ定義型の作成や確認がGUIから可能に
– ユーザ定義型から.NET Custom Class(C#,VB.NET,マネージドC++に対応)を生成するためのウィザ ドを提供に対応)を生成するためのウィザードを提供
SQL*PlusスクリプトEDITおよびHOSTコマンドを除く SQL*Plusコマンドを含むSQLスクリ– EDITおよびHOSTコマンドを除く、SQL Plusコマンドを含むSQLスクリプトの実行をサポート
問合わせウィンドウの拡張– 実行計画のタブが追加され、確認が容易に
– トランザクションの手動解決をサポート
21Copyright© 2010, Oracle. All rights reserved.
ODTの入手とインストール
ODTはOracleデータベースのインストールCDには含まれてODTはOracleデ タベ スのインスト ルCDには含まれていません
最新版はOTN-Jから入手可能です最新版はOTN Jから入手可能ですOracleデータベースのライセンスに準じて利用可能です入手したEXEファイルを実行するとsetup exeが作成されます入手したEXEファイルを実行するとsetup.exeが作成されますsetup.exeを実行するとOUIが起動しますので、そちらでインストールしますスト ルします
ODTをインストールすると自動的にODP.NETのインストールとVS.NETの環境構成が行われます
22Copyright© 2010, Oracle. All rights reserved.
ODTVi l St di からのー Visual Studioからのパフォーマンスチューニング ー
23Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0.7 新機能 – ODTOracleパフォ マンス・アナライザOracleパフォーマンス・アナライザ
Visual StudioからAutomatic Database DiagnosticVisual StudioからAutomatic Database Diagnostic Monitor(ADDM) 、SQL Tuning Adviserが使用可能
スナップショットの差分を診断
結果作成起動
AWR(自動・ワークリポジトリ)
ADDM 結果作成
結果表示 (自動 ワ クリポジトリ)診断結果 / アドバイス
結果表示
起動
結果表示開発者
SQLSQLチューニングチューニング・アドバイザ・アドバイザ
結果表示
高負荷なSQL文・アドバイザ・アドバイザ 高負荷なSQL文
24Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0.7 新機能 – ODTSQL T i Ad i~ SQL Tuning Adviser~
25Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0.7 新機能 – ODTO l P f A l~ Oracle Performance Analyzer~
26Copyright© 2010, Oracle. All rights reserved.
ODE NETODE.NETー .NETストアドプロシージャの記述と配布 ー.NET ストアドプロシ ジャの記述と配布
27Copyright© 2010, Oracle. All rights reserved.
Oracle Database Extensions for .NET
MicrosoftVisual Studio .NET 2005
Oracle Database 10g Release 2以上のWi d 版でのみサポ トされる機能です
C / C#
開発作業
Windows版でのみサポートされる機能です。
ODT 10.2.0以上が必要になります。
C++ / C#VB.NETによる開発
ビ ド
Oracle DatabaseExtensions for .NET
(ODE NET) クライアント
DLLの作成(foo.dll)
配布
ビルド (ODE.NET) クライアントアプリケーション
O l D l T l
(foo.dll)PL/SQL
ストアド・プログラム
Oracle Developer Tools for Visual Studio .NET
(ODT)
28Copyright© 2010, Oracle. All rights reserved.
ODE.NETの構成と動作原理
クライアントアプリケーション
Oracle Instance PL/SQL リスナー
Oracle CLRHost
Microsoft.NET CLR
クライアントプロセス Oracleプロセス 外部プロセス
29Copyright© 2010, Oracle. All rights reserved.
.NETストアドプロシージャの開発
Oracle Projectテンプレートの利用による .NETストアドプロシージャの開発Oracle Project テンプレ トの利用による .NETストアドプロシ ジャの開発
30Copyright© 2010, Oracle. All rights reserved.
.NETストアドの作成と配置方法
1. Oracleプロジェクトを作成2. .NETアセンブリを作成3. 配布ウィザードで以下の処理を自動実行配布ウィザ 以下 処 を自動実行
.NETアセンブリ(DLL)をサーバーへコピーPL/SQLラッパーの作成PL/SQLラッ の作成
配布時にはSYSまたはSYSTEM接続を使い、配布先を本来の配布時にはSYSまたはSYSTEM接続を使い、配布先を本来のスキーマにしてください
31Copyright© 2010, Oracle. All rights reserved.
.NETストアドプロシージャの配布
Oracle Deployment Wizard for .NETを利用した、.NETストアドプロシージャの配布Oracle Deployment Wizard for .NETを利用した、.NETストアドプロシ ジャの配布
32Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0 新機能 – ODE.NET
アセンブリ再配布機能アセンブリ再配布機能– 既にロードされた状態の.NET Stored Procedureを再配布で置き換え可能にする設定を提供
– 開発およびテスト時の作業効率を向上
Nullable type– .NET Framework 2.0で追加されたNullable Typeに対応
33Copyright© 2010, Oracle. All rights reserved.
Agenda
.NET + Oracle 開発環境の準備アプリ開発の進め方アプリ開発の進め方
アプリの配布
Appendix: .NETチューニング
34Copyright© 2010, Oracle. All rights reserved.
ODP NETODP.NETー アプリケーションの配布 ー
35Copyright© 2010, Oracle. All rights reserved.
ODP.NETを利用したアプリケーションの配布~ Oracle Clientのインストール~~ Oracle Clientのインスト ル ~
OUI– Oracle GUIベースの インストール– DB Server, Client共、GUIベースで容易にインストール
Silent install– インストール作業の自動化
– Microsoft SMS もしくは、他のインストール製品を利用して配布可能
– 大量クライアントの配布に最適
Instant Client XCopypy– ファイルコピーとバッチの実行でインストール可能
– 大量クライアントの配布に最適大量クライア 配布 最適
36Copyright© 2010, Oracle. All rights reserved.
Instant Client XCopy での配布
I t llの手順Install の手順– Step 1: Unzip and copy IC files to disk
St 2 i t ll b tの実行– Step 2: install.batの実行配布したいコンポーネント、 Oracle Home の名前、配布先の3つを指定。布先 を指定。
– Step 3: Windows PATHにインストールパスを追加– Step 4: NLS_LANG の設定
37Copyright© 2010, Oracle. All rights reserved.
XCopy Install.bat
38Copyright© 2010, Oracle. All rights reserved.
Instant Client XCopy コンポーネント
Instant Client xcopy でインストール可能なコンポーネントSQL*Pl– SQL*Plus
– OCIOCCI– OCCI
– ODBCJDBC-OCI– JDBC-OCI
Instant Client xcopy で追加されたコンポーネントODP NET– ODP.NET
– Oracle Providers for ASP.NET– Oracle Provider for OLE DB– Oracle Provider for OLE DB– OO4O– Oracle Services for MTS
39Copyright© 2010, Oracle. All rights reserved.
tnsname.oraを使用しない接続
ODP.NET ONLYODP.NET ONLY
Dim cnn As New OracleConnectionDim cnn As New OracleConnection
Dim sb As New System.Text.StringBuilder
sb.Append("User Id=scott; Password=tiger;")
sb.Append("Data Source=(DESCRIPTION = (ADDRESS_LIST = ")
sb.Append("(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)") tnsnams.oraの内容sb.Append("(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED)")
sb.Append("(SERVICE_NAME = orcl)));")
をそのまま記述
cnn.ConnectionString = sb.ToString
cnn.Open()
MsgBox("Connect OK!!")
cnn.Close()
40Copyright© 2010, Oracle. All rights reserved.
Multiple Oracle Homes(MOH)
Multiple Oracle Homes (MOH) 複数バージョンのO l 製品をイ ト する為にOracle製品をインストールする為に:Oracle Database version 8.0.4以前ではサポートされません。
example:p– Oracle 10.2.0: d:¥oracle10¥ora102– Oracle 11.0.0: d:¥oracle11¥ora110Oracle 11.0.0: d:¥oracle11¥ora110
41Copyright© 2010, Oracle. All rights reserved.
Multiple Oracle Homes
Multiple Oracle Homes のレジストリ設定:– HKLM¥Software¥Oracle¥ALL HOMES andHKLM¥Software¥Oracle¥ALL_HOMES and
HKLM¥Software¥Oracle¥HOME(n)– HKLM¥Software¥Oracle¥KEY home_
42Copyright© 2010, Oracle. All rights reserved.
Multiple Oracle Homes の管理Oracle Client SoftwareOracle Client Software
Oracle client DLLs はWindows Path の設定O ac e c e t sは do s at の設定から読み込まれます。
Web (IIS)Web (IIS) – IIS supports separate worker processes in
same instancesame instanceIIS 6 for Windows Server 2003 以上
– それぞれのprocessでDllのディレクトリ設定それぞれのprocessでDllのディレクトリ設定Client/Server
それぞれのアプリケ ションのスタ トアップ時に– それぞれのアプリケーションのスタートアップ時に、利用したいOracle Home のPATHを設定
43Copyright© 2010, Oracle. All rights reserved.
Oracle Homes in .NETの管理ODP.NET 10.2.0.4 以上の場合
– ODP NETは NET config files を利用してアンマネージド– ODP.NET は .NET config files を利用してアンマネ ジドな Oracle DLLsを読み込みます。
– それぞれのアプリケーション毎に、異なるバージョンのそれぞれのアプリケ ション毎に、異なるバ ジョンのOracle ClientとODP.NETを設定できます。
DLLの検索順序DLL の検索順序– 1. Current application directory– 2 Application config or web config2. Application config or web.config– 3. Machine.config
4 Windows Registry– 4. Windows RegistryHKLM¥Software¥Oracle¥ODP.NET¥<version>¥DllPath
– 5 Windows System Path setting– 5. Windows System Path setting
44Copyright© 2010, Oracle. All rights reserved.
Agenda
.NET + Oracle 開発環境の準備アプリ開発の進め方アプリ開発の進め方
アプリの配布
Appendix: .NETチューニング
45Copyright© 2010, Oracle. All rights reserved.
ODP NETODP.NETー パフォーマンス・チューニング ー
46Copyright© 2010, Oracle. All rights reserved.
ODP.NET チューニングポイント 1~ ラウンドトリップの回数を減らす ~~ ラウンドトリップの回数を減らす ~
取得レコードが多い場合、フェッチサイズによっては多くのラウンドトリップが発生
データ取得の際のパケットサイズを変更することにより、ラウンドトリップ回数を減少
FetchSize・・・デフォルト値は 65 536バイトFetchSize デフォルト値は、65,536バイト
47Copyright© 2010, Oracle. All rights reserved.
ODP.NET チューニングポイント 2~キャッシュの利用~~キャッシュの利用~
初 バ
コネクションプール
Select * from emp
1人目
1人目の初回アクセス時 DBサーバーへの問合せSelect * from emp
結果セットをデータセットに格納
DBサーバーWEBサ バ
問合せ結果の返信
DBサ バWEBサーバー
コネクションプール
S l t * f
2人目
2人目のアクセス時 Select * from emp
結果セットをデータセットに格納
DBサーバーWEBサ バ
データキャッシュから結果を取得
DBサ バWEBサーバー
48Copyright© 2010, Oracle. All rights reserved.
ODP.NET チューニングポイント 3~ コネクション・プーリング ~~ コネクション・プーリング ~
コネクションプール無
Client数 = Connection数
DBサーバーWEBサ バサWEBサーバー
コネクションプール有
Client数 > Connection数
DBサーバーWEBサーバー
Client数 Connection数
DBサWEBサーバー
49Copyright© 2010, Oracle. All rights reserved.
ODP NETODP.NETー ラウンドトリップの回数を減らす ー
50Copyright© 2010, Oracle. All rights reserved.
ODP.NET ラウンドトリップの回数を減らすフ チ サイズの制御~フェッチ・サイズの制御~
エンドユーザーが大量のデータを使用する場合、アプリケーションによるデータ・フェッチのラウンドトリップ回数を最小限にするための仕組み。
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select * from fetch_test“;
OracleDataReader dr = cmd.ExecuteReader();
dr.FetchSize = cmd.RowSize * numRows;
while (dr.Read())
{{
rowsFetched++;
}
FetchSizeの値はデフォルトで、「64KB」に設定
51Copyright© 2010, Oracle. All rights reserved.
ODP.NET ラウンドトリップの回数を減らす~フェッチ・サイズ / BLOB~~フェッチ・サイズ / BLOB ~
BLOBでのラウンドトリップ回数を最小限にするための仕組み。Di A N O l C i (Dim cnn As New OracleConnection( _
"user id=scott;password=tiger;data source=orcl")
Dim strSql As String = _
"select blob fld from blob test where blob id=1"select blob_fld from blob_test where blob_id=1
Dim cmd As New OracleCommand(strSql, cnn)
cmd.InitialLOBFetchSize = 32767
cnn.Open()
Dim dr As OracleDataReader = cmd.ExecuteReader
If dr.Read Then
Di bl b A O l Bl b d G tO l Bl b(0)Dim blob As OracleBlob = dr.GetOracleBlob(0)
Dim ms As New System.IO.MemoryStream(blob.Value)
PictureBox1.Image = New Bitmap(ms)
End IfEnd If
Oracle Data Provider for .NET 11.1から小さなサイズのLOB検索のパフォーマンスが向上。この機能拡張を使用できるのは、Oracle 11gリリース1.0以降のデータベース・バージョンで対応機 張 g
52Copyright© 2010, Oracle. All rights reserved.
ODP.NET ラウンドトリップの回数を減らす~OracleBulkCopy~~OracleBulkCopy~
Oracleデータベース以外のデータソースからOracleデータベース内の表に対してデータを高速に一括ロードを高速に 括ロ ド
'// ExcelからOracle Datbaseへデータを一括コピーDim eConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:¥¥Temp¥¥SmplData xls;Extended Properties=""Excel 8 0;HDR=YES;"";")Data Source=C:¥¥Temp¥¥SmplData.xls;Extended Properties= Excel 8.0;HDR=YES; ; )
eConn.Open() Dim cmdFrom As New OleDbCommand("Select EMPID,EMPNAME From [Sheet1$]") cmdFrom.Connection = eConn Dim rdrFrom As OleDbDataReader = cmdFrom ExecuteReaderDim rdrFrom As OleDbDataReader = cmdFrom.ExecuteReader Dim oConn As New OracleConnection("User Id=scott;Password=tiger;Data Source=orcl11g") oConn.Open() Dim obCopy As New OracleBulkCopy(oConn) obCopy DestinationTableName = "emp"obCopy.DestinationTableName = emp obCopy.ColumnMappings.Add("empid", "empno") obCopy.ColumnMappings.Add("empname", "job") obCopy.WriteToServer(rdrFrom)
Oracle Data Provider for .NET 11.1からの機能Oracle Data Provider for .NET 11.1からの機能
53Copyright© 2010, Oracle. All rights reserved.
ODP NETODP.NETー キャッシュの利用 ー
54Copyright© 2010, Oracle. All rights reserved.
Oracle Database キャッシュの利用~ Result Cache~
Oracle Datatbase 11g リリ ス 1 0の新機能
~ Result Cache ~
Oracle Datatbase 11g リリース 1.0の新機能
OrdersInventory
LineItems
InventoryLine
Items 従来のキャッシュOrders
Inventory Items
結果キャ シ
Back Orders
PickLists
読み込みブロック全体をキャッシュ
Back Orders
PickLists
SQL検索結果のみキャッシュ
結果キャッシュ
メモリの使用効率をあげ、レスポンスの高速化をはかる
55Copyright© 2010, Oracle. All rights reserved.
Oracle Database キャッシュの利用~ Result Cache~~ Result Cache ~
SQLの結果キャッシュによってキャッシュされた情報は SGA 上(共有プール内の領域)に格納され、ユーザ間でその情報が共有される。内の領域)に格納され、ユ ザ間でその情報が共有される。アクセス対象のテーブルのデータの更新が行われた場合、そのキャッシュは無効になる。
キャッシュ済みの
共有プールSGA
SQL結果キ
結果が返され、高速レスポンス
SQL結果キャッシュ
ユ ザ A ユ ザ B① ②③
Select …Select …
ユーザーA ユーザーB① ②
大量データにアクセスするが、結果として返す行が少量な場合に非常に有効例)定型的なレポートなどのクエリー
56Copyright© 2010, Oracle. All rights reserved.
Oracle Database キャッシュの利用~ Result Cache~~ Result Cache ~
リザルト・キャッシュを有効化するリザ キャッシ を有効化する
alter system set RESULT_CACHE_MODE = 'FORCE';
MANUAL(デフォルト) ユーザが手動でリザルト・キャッシュを行う指定をした場合のみ、リザルト・ キャッシュの機能が使用されるFORCE 常にリザルト・キャッシュの機能が働く
リザルト・キャッシュを有効化する
select /*+ result_cache */ first_name, last_name from employees
RESULT_CACHE_MODEの値が「MANUAL」となっていた場合は、SQLの中にヒント句を入れることにより、クライアント・リザルトキ シ 機能を有効にすることが可能キャッシュ機能を有効にすることが可能
57Copyright© 2010, Oracle. All rights reserved.
ODP.NET キャッシュの利用ステ トメント キャ シ~ ステートメント・キャッシュ ~
同じSQL文を(場合によっては異なるパラメータ値を使用して)後で実行する場合、カーソルQから解析された情報を再利用して、文を解析せずに実行
"User Id=SCOTT;Password=TIGER;Data Source=ORCL;Statement Cache Size=100"
Where句に指定されている条件を次のようにパラメータ変数を使用する必要がありWhere句に指定されている条件を次のようにパラメ タ変数を使用する必要があり
OracleCommand cmd = new OracleCommand("SELECT * FROM emp WHERE empno=:pEmpNo", conn);p p p p
OracleParameter pEmpNo =cmd.Parameters.Add("pEmpNo", OracleDbType.Int32, ParameterDirection.Input);
pEmpNo.Value = 7369;
58Copyright© 2010, Oracle. All rights reserved.
ODAC 11.1.0.7 新機能 – ODP.NET ステ トメント・キャッシュの自動チュ ニングステートメント・キャッシュの自動チューニング
機能機能
– ODP.NETが自動的に稼動状態のモニタを行い、ステートメント・キャッシュ・サイズを最適な値に設定
– ステートメント・キャッシュによりSQL or PL/SQL のリパースを排除– 実行頻度に応じてステートメント・キャッシュの大きさを動的に変更
Application (A) ODP.NETデータアクセスが多い
ODP.NETCache(拡張)
デ タアクセ が多
ODP NETデータアクセスが少ないCache ODP.NET
Cache
デ タアクセスが少ない
59Copyright© 2010, Oracle. All rights reserved.
Oracle Database キャッシュの利用~ SecureFiles~~ SecureFiles ~
データベースへのラウンドトリップの回数を減らすことで、SecureFilesを使用する際の少量のLOB検索のパフォーマンスが向上 この拡張機能はOracle 11gリリース1 0以降のデータのLOB検索のパフォ マンスが向上。この拡張機能はOracle 11gリリ ス1.0以降のデ タベース・バージョンでのみ使用可能
この拡張機能は開発者に対して透過的なので、コード変更は必要なし。この拡張機能は開発者に対して透過的なので、コ ド変更は必要なし。
60Copyright© 2010, Oracle. All rights reserved.
Oracle Database キャッシュの利用~ SecureFiles~SecureFiles
STORE AS SECUREFILE 句を使用して表を作成しますSQL> CREATE TABLE t1 (c1 CLOB)
BASICFILEは以下のように利用します
2 LOB (c1) STORE AS SECUREFILE ;
BASICFILE は以下のように利用します– デフォルト (STORE AS 句を指定しない場合) は、
BASICFILE として作成されます
SQL> CREATE TABLE t1 (c1 CLOB)2 LOB (c1) STORE AS BASICFILE ;2 LOB (c1) STORE AS BASICFILE ;
61Copyright© 2010, Oracle. All rights reserved.
Oracle Database キャッシュの利用~ SecureFiles~
従来の LOB より、高速に処理可能
SecureFiles
従来の LOB より、高速に処理可能見込まれる性能改善の効果
競合削減– 競合削減
– 高いスループット
– 同時実行性の向上
– 領域管理の最適化領域管理の最適化
LOB 特有のチューニング・パラメータは不要
62Copyright© 2010, Oracle. All rights reserved.
ODP NETODP.NETー コネクション・プーリング ー
63Copyright© 2010, Oracle. All rights reserved.
Oracle Database コネクションプーリング
ODP.NETの接続プーリング機能を使用すると、アプリケーションは事前に作成された接続を用意するプールを作成および維持可能
接続プーリングを使用しない接続文字列(Pooling=FALSE)string no_pool = "User Id=hr; Password=hr; Data Source=oramag; Enlist=false; Pooling=false"
接続プーリングを使用する接続文字列(Pooling=TRUE)string with_pool = "User Id=hr; Password=hr; Data Source=oramag; Enlist=false; Pooling=true"
Poolingの値はデフォルトで、「TRUE」に設定g
64Copyright© 2010, Oracle. All rights reserved.
Oracle Database コネクションプーリング~ OS認証でも利用可能~~ OS認証でも利用可能~
ODP.NET ONLYODP.NET ONLY
Di A N O l C tiDim cnn As New OracleConnection
cnn.ConnectionString = "User Id=/;Data Source=orcl;DBA Privilege=SYSDBA" ①cnn.Open()
MsgBox("Connect OK!!")g ( !! )
cnn.Close()
①ConnectionString属性のUser Idを / に設定することにより データベース・ユーザーの認①ConnectionString属性のUser Idを / に設定することにより、データベース・ユーザーの認証にWindowsユーザー・ログイン資格証明を使用できます。また、DBA Privilege属性を介してSYSDBA権限またはSYSOPER権限のいずれかを使用してOracleデータベースに接続
ODP.NET 11.1.0以上では、OS認証でも接続プーリングが有効
65Copyright© 2010, Oracle. All rights reserved.
Oracle Database コネクションプーリング~ Perfmonでの確認~
Windowsパフォーマンス・モニター(Perfmon)を使用してODP.NETのコネクション・プーリング状況等を監視
Perfmonでの確認
ODP.NETのパフォーマンス・カウンタはOracle Data Provider for .NETというカテゴリ名で公開
66Copyright© 2010, Oracle. All rights reserved.
まとめNET開発者を以下3つの製品でサポート.NET 開発者を以下3つの製品でサポ ト
Visual Studio 2005, 2008をサポート
Oracle機能の活用O l D t P id f NET(ODP NET)O l D t P id f NET(ODP NET)Oracle Data Provider for .NET(ODP.NET)Oracle Data Provider for .NET(ODP.NET)
開発生産性の向上
Oracle Developer Tools for Visual Studio .NET(ODT)Oracle Developer Tools for Visual Studio .NET(ODT)
開発言語の統一
Oracle Database Extensions for .NET(ODE.NET)Oracle Database Extensions for .NET(ODE.NET)
67Copyright© 2010, Oracle. All rights reserved.
68
OTNOTN掲示版×ダイセミ掲示版×ダイセミ でスキルアップでスキルアップ!!!!・セミナー中に解消できなかった疑問点を解消したい!・セミナー終了後に疑問点が出てきた!
このようなお客様に
・一般的なその解決方法などを知りたい!
このようなお客様に、Oracle Technology Network(OTN)の掲示版の活用をお薦めします。掲示版の活用をお薦めします。
http://otn.oracle.co.jp/forum/index.jspa?categoryID=2
セミナーに関連する質問については、OTN掲示版の「データベース一般」へ
※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。ただ 過去の履歴を見ると 質問の大多数に関してなんらかの回答が書き込まれております
「デ タベ ス 般」へ
ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。
69Copyright© 2010, Oracle. All rights reserved.
OTNOTNセミナーセミナー オンデマンドオンデマンド コンテンツコンテンツ期間限定にて ダイセミの人気セミナ を動画配信中!!
http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html
期間限定にて、ダイセミの人気セミナーを動画配信中!!ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。
ttp://www.o ac e.co /tec o ogy/g oba /jp/o de a d/ot se a / de . t
※掲載のコンテンツ内容は予告なく変更になる可能性があります。いずれも期間限定での配信です 気になる ンテンツは早めにダウンロ ド頂くことをお勧めいたしますいずれも期間限定での配信です。気になるコンテンツは早めにダウンロード頂くことをお勧めいたします。
70Copyright© 2010, Oracle. All rights reserved.
ITプロジェクト全般に渡る無償支援サービスOracle Direct Conciergeサービスメニュー
業務改善計画の作成支援• 業務診断サービス• BIアセスメントサ ビス
Oracle Direct Conciergeサ ビスメ ュ
経営企画
• BIアセスメントサービスシステム運用状況の診断•パフォーマンス・クリニック・サービス•システム・セキュリティ診断サービスデ タ管理最適化サ ビス
運用 IT 企画システム企画の作成支援•業務診断サービス•BIアセスメントサービス
•データ管理最適化サービス
構築 設計RFP/提案書の作成支援
システム構築時の道案内•Access / SQL Serverからの移行•MySQL / PostgreSQLからの移行
•BIアセスメントサービス•メインフレーム資産活用相談サービス•仮想化アセスメントサービス•Oracle Database 構成相談サービス
MySQL / PostgreSQLからの移行•Oracle Database バージョンアップ支援•Oracle Developer Webアップグレード•システム連携アセスメントサービス
•Oracle Database 高可用性クリニック
71Copyright© 2010, Oracle. All rights reserved.
あなたにいちばん近いオラクル
O l Di tOracle Directまずはお問合せくださいまずはお問合せください
Oracle Direct 検索
まずはお問合せくださいまずはお問合せください
O ac e ec 検索
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Web問い合わせフォーム フリーダイヤル
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28専用お問い合わせフォームにてご相談内容を承ります。 0120-155-096
※月曜~金曜 9:00~12:00、13:00~18:00(祝日および年末年始除く)
※フォームの入力には、Oracle Direct Seminar申込時と同じログインが必要となります。
※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。れている連絡先が最新 も にな ているか、 確認下さい。
72Copyright© 2010, Oracle. All rights reserved.
73