Oracle PL/SQL Tuning: Expert Secrets for High Performance Programming
暫譯: Oracle PL/SQL 調優:高效能程式設計的專家秘訣
Dr. Timothy Hall
- 出版商: Rampant Tech Press
- 出版日期: 2014-05-24
- 售價: $1,280
- 貴賓價: 9.5 折 $1,216
- 語言: 英文
- 頁數: 230
- 裝訂: Paperback
- ISBN: 097615739X
- ISBN-13: 9780976157397
-
相關分類:
Oracle、SQL
海外代購書籍(需單獨結帳)
買這商品的人也買了...
-
$2,370$2,252 -
$1,007Distributed Systems: Principles and Paradigms (IE)(美國版ISBN:0130888931)
-
$580$458 -
$836PSP: A Self-Improvement Process for Software Engineers (Hardcover)
-
$990$842 -
$399CISSP All-in-One Exam Guide, 3/e
-
$780$663 -
$650$507 -
$650$514 -
$270$213 -
$780$616 -
$680$537 -
$780$663 -
$550$429 -
$620$490 -
$620$490 -
$580$493 -
$580$493 -
$2,000Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to OOA & D (Paperback)
-
$299$254 -
$350$298 -
$780$616 -
$450$356 -
$540$427 -
$780$663
相關主題
商品描述
Description
Oracle experts know that PL/SQL tuning makes a huge difference in execution speed. As one of the world’s most popular and respected experts, Dr. Tim Hall shares his secrets for tuning Oracle PL/SQL.
This indispensable book shows how to hypercharge Oracle applications gaining as much as 30x improvement in execution speed using under-documented code tricks. Packed with working examples, learn how to re-write SQL into PL./SQL and how to use advanced Oracle bulk array processing techniques to achieve super high performance. You can save your company millions of dollars in hardware costs by making your applications run at peak efficiency.
Targeted at the Senior Oracle DBA and developer, this advanced book illustrates powerful techniques that can make PL/SQL run faster than ever before. This book is not for beginners and should only be purchased by seasoned Oracle professionals who must turbocharge their applications. Your time savings from a single script is worth the price of this great book.
Table of Contents
Chapter 1 - Introducing PL/SQL
Introduction
What is PL/SQL and Why Should I use It?
PL/SQL Architecture
Overview of PL/SQL Elements
Blocks
Variables and Constants
Using SQL in PL/SQL
Branching and Conditional Control
Looping Statements
Goto
Procedures, Functions and Packages
Records
Object Types
Collections
Associative Arrays (Index-By Tables)
Nested Table Collections
Varrays
Collection Methods
Triggers
Error Handling
My Ideal Environment
Conclusion
Chapter 2 - Writing Efficient PL/SQL
Introduction
Bind Variables
Using Bind Variables
The cursor_sharing Parameter
Dynamic Binds using Contexts
SQL Injection
Bulk Binds
Using Rowids when Updating
Short-circuit Evaluations and Ordering Logic
Implicit vs. Explicit Cursors
Declarations, Blocks, Functions and Procedures in Loops
Duplication of Built-in String Functions
Minimize Datatype Conversions
The Trigger Compilation Myth
Efficient Function Calls
Using the NOCOPY Hint
Using PLS_INTEGER and BINARY_INTEGER Types
Using BINARY_FLOAT and BINARY_DOUBLE Types
Native Compilation of PL/SQL
Decoupling (cheating) for Performance
Conclusion
Chapter3 - Arrays and Bulk BindsIntroduction
Populating Collections Using Bulk Operations
Bulk collect
Bulk Collect from an Explicit Cursor
Chunking Bulk Collections Using the LIMIT Clause
Manually Limiting Bulk Collection Volumes
Bulk Collection of DML Results
FORALL
Bulk INSERT Operations
Bulk UPDATE Operations
Bulk DELETE Operations
Sparse Collections
Host Arrays in Bulk Operations
BULK_ROWCOUNT
Handling Exceptions in Bulk Operations
Unhandled Exceptions
Handled Exceptions
Bulk Operations that Complete
Dynamic SQL and Bulk Operations
ConclusionChapter 4 - Caching Session Data
Introduction
Using Arrays for Lookup Tables
Using Package Variables to Store Global Data
Using Contexts to Store Global Data
Conclusion
Chapter 5 - Memory ManagementIntroduction
Bind Variables and the Shared Pool
The NOCOPY Hint and Memory Usage
Bigger is Better for VARCHAR2 Variables
Using Packages Correctly
Pinning Packages in the Shared Pool
Conclusion
Chapter 6 - Cursor Variables and REF CURSOR Types
Introduction
Defining Cursor Variables
Cursor Variables as Parameters
Cursor Attributes and Cursor Variable Usage
Host Variables as Cursor Variables
Dynamic SQL and Variant Resultsets
Restrictions When Using Cursor Variables
Cursor Expressions
Conclusion
Chapter 7 - Table Functions and PipeliningIntroduction
Pipelining Table Functions
Parallel Enabled Table Functions
Creating Transformation Pipelines
Deterministic
Miscellaneous Information
Conclusion
Chapter 8 - Monitoring and Profiling PL/SQLIntroduction
Producing Performance Baselines
Monitoring Specific Code
Code Instrumentation (application tracing)
The DSP Package
dbms_application_info
dbms_session
dbms_system
dbms_profiler
dbms_trace
SQL trace, trcsess and tkprof
Generating SQL Trace Files
trcsess
tkprof
Trace Example
Execution Plans
plan_table
autotrace
Explain Plan
utlxpls.sql
dbms_xplan
Identifying the Impact of Code at the Database Level
Dynamic Performance Views (V$)
sessions.sql
top_sessions.sql
top_sql.sql
longops.sql
session_waits.sql
session_events_by_sid.sql and system_events.sql
session_stats.sql and system_stats.sql
session_io.sql
open_cursors_by_sid.sql
locked_objects.sql
STATSPACK
Automatic Workload Repository (AWR)
ADDM
Using Oracle Enterprise Manager
Conclusion
Book Conclusion
商品描述(中文翻譯)
**描述**
Oracle 專家知道 PL/SQL 調優對執行速度有著巨大的影響。作為全球最受歡迎和尊敬的專家之一,Tim Hall 博士分享了他調優 Oracle PL/SQL 的秘密。
這本不可或缺的書展示了如何通過使用未充分記錄的代碼技巧來超級增強 Oracle 應用程序,實現高達 30 倍的執行速度提升。書中充滿了實用範例,學習如何將 SQL 重新編寫為 PL/SQL,以及如何使用高級 Oracle 批量數組處理技術來實現超高性能。通過使您的應用程序以最佳效率運行,您可以為公司節省數百萬美元的硬體成本。
本書針對高級 Oracle DBA 和開發人員,展示了可以使 PL/SQL 運行得比以往更快的強大技術。本書不適合初學者,僅應由需要加速其應用程序的資深 Oracle 專業人士購買。您從單個腳本中節省的時間足以彌補這本優秀書籍的價格。
**目錄**
**第 1 章 - PL/SQL 介紹**
介紹
什麼是 PL/SQL,為什麼我應該使用它?
PL/SQL 架構
PL/SQL 元素概述
區塊
變數和常數
在 PL/SQL 中使用 SQL
分支和條件控制
循環語句
Goto
過程、函數和包
記錄
對象類型
集合
關聯數組(索引表)
嵌套表集合
Varrays
集合方法
觸發器
錯誤處理
我理想的環境
結論
**第 2 章 - 編寫高效的 PL/SQL**
介紹
綁定變數
使用綁定變數
cursor_sharing 參數
使用上下文的動態綁定
SQL 注入
批量綁定
在更新時使用 Rowids
短路評估和排序邏輯
隱式與顯式游標
循環中的聲明、區塊、函數和過程
內建字符串函數的重複
最小化數據類型轉換
觸發器編譯神話
高效的函數調用
使用 NOCOPY 提示
使用 PLS_INTEGER 和 BINARY_INTEGER 類型
使用 BINARY_FLOAT 和 BINARY_DOUBLE 類型
PL/SQL 的本地編譯
為性能解耦(作弊)
結論
**第 3 章 - 數組和批量綁定**
介紹
使用批量操作填充集合
批量收集
從顯式游標批量收集
使用 LIMIT 子句分塊批量集合
手動限制批量收集量
DML 結果的批量收集
FORALL
批量 INSERT 操作
批量 UPDATE 操作
批量 DELETE 操作
稀疏集合
批量操作中的主機數組
BULK_ROWCOUNT
在批量操作中處理異常
未處理的異常
已處理的異常
完成的批量操作
動態 SQL 和批量操作
結論
**第 4 章 - 快取會話數據**
介紹
使用數組作為查找表
使用包變數存儲全局數據
使用上下文存儲全局數據
結論
**第 5 章 - 記憶體管理**
介紹
綁定變數和共享池
NOCOPY 提示和記憶體使用
對於 VARCHAR2 變數,越大越好
正確使用包
在共享池中固定包
結論
**第 6 章 - 游標變數和 REF CURSOR 類型**
介紹
定義游標變數
游標變數作為參數
游標屬性和游標變數使用
主機變數作為游標變數
動態 SQL 和變體結果集
使用游標變數的限制
游標表達式
結論
**第 7 章 - 表函數和管道化**
介紹
管道化表函數
支持並行的表函數
創建轉換管道
確定性
其他信息
結論
**第 8 章 - 監控和分析 PL/SQL**
介紹
生成性能基準
監控特定代碼
代碼儀器(應用程序跟蹤)
DSP 包
dbms_application_info
dbms_session
dbms_system
dbms_profiler
dbms_trace
SQL 跟蹤、trcsess 和 tkprof
生成 SQL 跟蹤文件
trcsess
tkprof
跟蹤範例
執行計劃
plan_table
autotrace
解釋計劃
utlxpls.sql
dbms_xplan
識別代碼在數據庫層級的影響
動態性能視圖 (V$)
sessions.sql
top_sessions.sql
top_sql.sql
longops.sql
session_waits.sql
session_events_by_sid.sql 和 system_events.sql
session_stats.sql 和 system_stats.sql
session_io.sql
open_cursors_by_sid.sql
locked_objects.sql
STATSPACK
自動工作負載庫 (AWR)
ADDM
使用 Oracle 企業管理器
結論
書籍結論