Довольно интересная книжка "Oracle SQL & PL/SQL Golden Diary".
По-моему вполне хорошая книжка, покрывает практически все, что нужно хорошему разработчику.
Зацените оглавление:
Table of contents
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
Chapter 1: Introduction with concepts
Concepts 1: SQL definition
Define SQL
DDL
DML
DCL
TCL
Concepts 2: Oracle constraints
Primary Key
Unique Key
Foreign Key
Check constraint
NOT NULL constraint
Default constraint
Concepts 3: SQL JOINS, Oracle JOIN methods and SET OPERATORS
INNER JOIN
NATURAL JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
SELF JOIN
CARTESIAN JOIN
Issue in LEFT, RIGHT and FULL outer join while using the filter criteria
SQL Joins convert into Oracle internal Join methods
Nested Loops join methods
Hash join methods
Sort Merge join methods
SET OPERATORS
UNION/UNION ALL/INTERSECT and correlation with Joins
Concepts 4: SQL functions and regular expressions
NVL2
Coalesce correlation with NVL and CASE
DECODE
CASE
REGEXP_INSTR
REGEXP_SUBSTR
REGEXP_REPLACE
REGEXP_LIKE
REGEXP_COUNT
EXTRACTVALUE
EXTRACT
Concepts 5: Fast full index scan
Definition of FFIS
Usage of explain plan command
DBMS_XPLAN.DISPLAY different level of explain plan output
Concepts 6: Index JOIN scan
Concepts 7: Indexing on null column rows
Create index on expression
Create function based index on NVL function
Concepts 8: Proper Usage of DISTINCT and column list ordering for insert
Usage of DISTINCT to reduce processing time of query
Column list ordering issue in a table and solution
Concepts 9: SQL optimization and different types of Statistics
What is Statistics?
Function statistics and use
Extended statistics and use
Explicitly generated extended statistics
Implicitly generated extended statistics
Ways to refactor code
Concepts 10: Table compression/Index compression in 12c
Compress for OLTP
Space regained by compression
Index compression (Rebuild/Create)
Advanced Index compression in 12c
Concepts 11: Partition pruning
Concepts 12: Context switch
Concepts 13: Database server and normalization
Database server
Normalization
1NF
2NF
3NF
Objective of normalization
Introduction of limited redundancy for performance
Concepts 14: Oracle SKIP LOCKED and DDL_LOCK_TIMEOUT in 11g
FOR UPDATE issue
FOR UPDATE SKIP LOCKED
DDL_LOCK_TIMEOUT
Concepts 15: Index usage with LIKE operator
Concepts 16: Materialized view
Concepts 17: Hierarchical Query
Definition
CONNECT BY PRIOR
START WITH
Sorting using "Order siblings by"
Break rows into column
Get last 7 days
New record generation using CONNECT BY
Example to find all possible bus routes to reach from point A to point E
CONNECT_BY_ROOT
SYS_CONNECT_BY_PATH
NOCYCLE
Concepts 18: SGA, UGA and PGA
SGA
UGA
PGA
Calculate how much PGA and UGA memory is used
Concepts 19: Useful queries
Convert number into words
Day of month
First day of a month
Last day of a month
Working week dates for a week
Number of days between two dates
Get user db information of a system using sys_context
Showing system privileges
Get DDL for a table
Get object privileges
Setting the current schema
Resizing tablespace
Current size of database
Space left in database
Size occupied by data by one schema
Concepts 20: PL/SQL Compiler
Concepts 21: PL/SQL Optimizer
Concepts 22: PL/SQL Cursor
Definition of Cursor
Why Cursor should be closed
Solution for invalid cursor error
Solution for fetch out of sequence error
ROWID perform better than primary key in cursor "FOR LOOP" example
For update statement in Cursor select
Concepts 23: Cursor variable
Definition of Cursor variable
Strongly typed Cursor variable
Weakly typed Cursor variable
Built in cursor variable SYS_REFCURSOR
Restriction of using cursor variable in package spec
Few notable points about cursor variable
Concepts 24: Cursor expressions
Definition of cursor expressions
How it works with and without cursor expression
Concepts 25: PL/SQL RECORD
Defining PL/SQL records
Referencing PL/SQL records
Few notable points about record
Concepts 26: PL/SQL INDEX by Table
Defining PL/SQL INDEX BY table
Referencing PL/SQL index by table
Few notable points about index by tables
Concepts 27: PL/SQL nested Table
Defining Nested table
Referencing PL/SQL nested table
Difference between index by and nested table
Initialization and extension of nested table
Resolution of uninitialized collection error with and without bulk collect
Concepts 28: VARRAY
Defining PL/SQL VARRAY
Referencing PL/SQL VARRAY
Difference between varray and nested table
Difference between varray and index by table
Collection methods with example
Concepts 29: Exception handling
Defining exception
Pre-defined Oracle exceptions
User defined oracle exception using PRAGMA EXCEPTION_INIT
Business exceptions
Concepts 30: Native dynamic SQL and Bulk binding
Construct for NDS
Object name or column name cannot be passed as bind variable and solution
Bulk binding: SELECT using BULK COLLECT and DML using FORALL
SAVE EXCEPTIONS
SQL%BULK_ROWCOUNT
INDICES OF clause to iterate over non-consecutive sparse collection
Few notable points about bulk binding
Concepts 31: STORED SUBPROGRAM
Defining Stored subprogram
Pass a function or procedure name as an argument to a stored subprogram
Autonomous_transaction
Pipelining table function
DETERMINISTIC optimizer hint
NOCOPY compiler hint
DML inside a function and call from SQL SELECT
Restriction of function to call from SQL SELECT
Package function overloading and named/positional/mixed notation
Package variables persistence in a session
PRAGMA serially_reusable to reduce load on PGA
Concepts 32: DEFINER/INVOKER rights and remote dependencies
Defining definer right model
Defining invoker right model
Few notable points with example regarding the model
REMOTE_DEPENDENCIES_MODE
Concepts 33: Trigger
Defining Trigger with example
Few notable points about trigger
_SYSTEM_TRIG_ENABLED parameter
Concepts 34: Wrapping PL/SQL code, its limitation and solution to resolve in 11g
Wrap utility to protect source code
Limitations of WRAP utility:
Resolution of limitation using DBMS_DDL
Concepts 35: PL/SQL WARNINGS
PL/SQL warning to identify performance issue
Example 1 performance issue
Example 2 unnecessary code identification
How to check warning flag in db
Concepts 36: CONDITIONAL COMPILATION and dynamic COMMIT
Defining conditional compilation
PLSQL_CCFLAGS
Selection directive
User defined inquiry directive
Predefined inquiry directive
Commit conditionally in an application
Version independent code in an application
Control on choosing different approach without touching a code
Checking current conditional compilation settings
Chapter 2: Different viewpoint of Index for developer and dba (21 pages)
Tips 1: Function Based Index or Indexed Virtual column in 11g?
Function based index on user defined function
Function based index on oracle defined function (e.g. UPPER)
Virtual column on expression
Virtual column on user defined function
Virtual column on oracle defined function
Example to compare FBI and VI
Few notable points for comparative analysis of FBI and VI
Tips 2: Invisible index and usage?
Defining invisible index
Creation of invisible index
How to use invisible index
When to use invisible index
Few notable points on invisible index
Tips 3: Multiple indexes on same column in Oracle 12c?
How to create multiple indexes on same column
Advantage of having multiple indexes on same column
Tips 4: INDEX order in composite index or INDEX only access?
Tips 5: Table lock on parent table for missing index on foreign key column
Issue with un-indexed foreign key
Finding all un-indexed foreign key in a system
Advantage of having index on foreign key
Tips 6: Virtual indexes- INDEXES WITH NO SEGMENTS Benefits
Defining virtual index
Use of virtual index
Creation of virtual index
Checking virtual index in a system
Tips 7: Oracle index skip scan case study run time drop from 4 hr. to 10 sec?
What is index skip scan?
Interesting case study to improve performance manifold.
Index range scan and index skip scan
Different ways to use index for a default DATE column
Tips 8: How to force optimizer to use or not use index?
Tips 9: Non Unique index with null values or not null value for the column?
Tips 10: Ordering table rows without using ORDER BY clause and steps to eliminate SORTING?
What is sorting?
Avoid sorting using index
Avoid sorting Using WHERE clause
Avoid sorting using oracle hints
Few notable points on elimination of sorting
Internal data type conversion and optimizer ignore index
Improper datatype and incorrect ordering
Correct order (Without order by clause) using proper datatype
Tips 11: Case study using “Index only scan” and DETERMINISTIC function for performance?
Defining Index only scan
Few notable points on index only scan
Case study to improve performance manifold by index only scan and deterministic function
Tips 12: Primary key with UNIQUE index or NON-UNIQUE index?
Primary key association with unique index
Primary key association with unique or non-unique index
Associate primary key with different index
Comparative analysis of primary key with UNIQUE index and NON-UNIQUE index
Rebuilding of index online and offline mode
Tips 13: When to use index and when not to use index
When index is required
Avoidance of index
Chapter 3: Analytical query and Inter-row Pattern matching
Tips 1: Inter-rows W Pattern matching for stock price fluctuation using “MATCH_RECOGNISE” clause,
Big Data influence in 12c?
Defining Pattern
Examples of real life scenarios
Finding “W” shape pattern in stock price using 12c “MATCH_RECOGNISE” clause
Tips 2: Pivoting rows into column dynamically in 10g/11g
Defining Pivot
Solution to convert rows into columns using PIVOT in 11g
Solution to convert rows into columns pre 11g
Solution to convert row into column in 11g without PIVOT keyword
Tips 3: Breaking a concatenated string to display as set of rows and set of columns?
String broken to display as multiple columns
String broken to display as multiple rows
Tips 4: Find Inter-rows Specific colour Pattern for Animal colour registration prior to 12c and in 12c
Using “MATCH_RECOGNISE” Clause? 4
Find colour pattern prior to 12c Solution
Find colour pattern in 12c Solution
Tips 5: Find Inter-rows Specific pattern for consecutive same flag for 3 times prior to 12c and in 12c
Using “MATCH_RECOGNISE” Clause? 7
Find same consecutive flag prior to 12c Solution
Find same consecutive flag in 12c Solution
Tips 6: What is RANK, DENSE_RANK and ROW_NUMBER?
Rank
Dense_rank
Row_number
Tips 7: What is LEAD and LAG function?
Lead
Lag
Tips 8: Top N query using row limiting clause in 12c?
Top N rows using normal subquery
Top N rows using analytic query
Top N rows using 12c row limiting clause
Get top 10 rows using 12c row limiting clause and “WITH TIES” option
Get top 10 % of salaries using 12c row limiting clause
Get 6th to 10th records from top 10 salary using 12c row limiting clause
Tips 9: Result from view is different against result from table/mview created from that view, why?
Tips 10: How to get latest version of data from each set of record in a table?
Tips 11: How to pivot and unpivot prior to 11g and in 11g?
Pivot using traditional sql join
Pivot using CASE statement
Pivot using oracle 11g PIVOT
Unpivot using oracle 11g UNPIVOT
Tips 12: How to Display the grouped data in one row?
Tips 13: Assign dynamic page no through query (instead of application coding for the report)?
Tips 14: Nullify the duplicate record for certain attribute only
Chapter 4: Flashback setup and data transfer to warehouse
Tips 1: Why flashback was introduced?
Tips 2: What is the improvement of flashback in Oracle 11g and how to configure flashback?
Improvement in 11g flashback.
Steps to configure flashback
Tips 3: What is the flashback mechanism?
11g flashback mechanism
Advantage of 11g mechanism as compared to pre-11g flashback
Tips 4: How to check if flashback is configured in your system and in your tables?
Find flashback archive name/tablespace name
Enable flashback
Disable flashback
Grant to run flashback query
Tips 5: Flashback query using method “timestamp” OR “scn”? 0
Timestamp based approach
SCN based approach
Comparison between two approaches
Tips 6: Move all versions of flashback data from transactional db to warehouse using STATIC method?
Rule to move data from transaction db to warehouse db
Create necessary table and perform some DML
Move data from transaction table to enterprise data warehouse table statically
Tips 7: Move all versions of flashback data from transactional db to warehouse dynamically?
Rule to move data from transaction db to warehouse db
Move data from transaction table to enterprise data warehouse table dynamically
Tips 8: Restore table which is dropped using flashback?
Restore table using flashback
Key points to remember
Tips 9: Move specific date/time flashback data from transactional db to warehouse?
“As of timestamp” approach
“As of scn” approach
Tips 10: How many time a particular attribute in a row modified using flashback?
Tips 11: Improvement in auditing using flashback in 12c?
Tips 12: Improvement in tracking history for security related table using flashback in 12c?
Tips 13: Import and export of flashback version history in 12c?
Start a group
Assigning table to the group
Enable flashback for the group
Disable flashback for the group
Remove certain table from the group
Drop the group from DB
Tips 14: Free Flashback archive and OPTIMIZE option in 12c?
Tips 15: FLASHBACK magic exposed, Revealed for the first time
Puzzle 1: AS OF TIMESTAMP clause it does not give data for the timestamp
Puzzle 2: AS OF SCN clause does not give data for the timestamp
Puzzle 3: AS OF TIMESTAMP clause get the column even if the column does not exist
Puzzle 4: flashback version query fail when it is run in different time
Chapter 5: Sub query factoring using WITH clause (12 pages)
Tips 1: WITH Clause in Oracle query give great performance?
Subquery factoring
Comparative analysis of WITH clause and conventional approach
Tips 2: Different ways to pivot full rows (for all columns rows) into columns5
All columns pivoting
Using Pivot
Using normal subquery:
Using multiple WITH clause
Tips 3: WITH Clause improvement in 12c?
Inlining function/procedure from sql select
Inlining function/procedure from PL/SQL
“WITH_PLSQL” hint for select and update to eliminate error “unsupported use of WITH clause”
Restriction on using WITH clause from sqldeveloper
Tips 4: Reference a package constant from sql select in 12c?
Comparative study of calling package constant from sql select in 12c and prior to 12c
Tips 5: PRAGMA UDF to improve function call from SQL in 12c?
Introduction of pragma UDF
Comparative study using “WITH CLAUSE”, “PRAGMA UDF”
Restriction of Pragma UDF
Chapter 6: Integration of similar concepts
Tips 1: Oracle Object CACHE Using “Cache” or “Keep buffer pool” or Oracle 12c “IN-MEMORY column Store”?
Caching/pinning object in general buffer cache
Caching/pinning object in keep buffer cache
Caching/pinning object in general buffer cache
Caching/pinning object in the In-memory Column-store
Example how to configure In-memory Column-store
Example how to use IM-COLUMN store
Scenario where IM column store is good or bad
Tips 2: Result cache function or deterministic function or PL/SQL collection?
Defining result-cached function
Defining deterministic function
Defining PL/SQL collection
Comparative analysis with examples
Restriction on using function result cache
Tips 3: Function result cache or Oracle user Cache?
Defining oracle user cache
Comparative analysis with example
Tips 4: Correlated update or merge or different approach to update?
Defining correlated update
Different approaches to update data
Correlated subquery
Example using correlated subquery
Example using LATERAL keyword in 12c
Example using inline view
Example using normal subquery
Case study with and without LATERAL keyword
Tips 5: Oracle NOT IN clause or MINUS or JOIN or NOT EXISTS clause?
Example using NOT IN method
Example using MINUS method
Example using JOIN method
Example using NOT EXISTS method
Few notable points about the usage
Tips 6: Nested loop Join or hash join or parallelism or multi-threading?
Example using nested loop join
Example using hash join
Example using parallelism
Example using multi-threading
Comparative analysis
Tips 7: Use “Where” clause or “Having” clause?
Filtering data using “WHERE” clause
Filtering data using “HAVING” clause
Tips 8: Use Oracle clause IN or EXISTS or DISTINCT And How to Refactor query to avoid “DISTINCT” Keyword from the query?
Example using IN method
Example using EXISTS method
Example using DISTINCT method
How to avoid DISTINCT
Tips 9: Oracle IN clause or INTERSECT or JOIN clause?
Performance using IN method
Performance using INTERSECT method
Performance using JOIN method
Tips 10: Materialized view or SQL Result Cache in 11g?
Comparative analysis of Materialized view and Result cache
Tips 11: How to Convert a PL/SQL For loop update into SQL update or Merge for performance Improvement?
Tips 12: Query refactoring for Hierarchical query “OR” clause or “UNION” clause?
Example: OR clause with hierarchical query
Solution for OR clause with hierarchical, improve response time more than 1000%
Tips 13: Mutating trigger resolution using collection or Global temporary table?
Solution for mutating error Using PL/SQL collection
Solution for mutating error Using temporary table
Chapter 7: Generic know how on Oracle SQL for developer
Tips 1: Invisible column in 12c
Advent of invisible column
How to see invisible column in a table
How to create invisible column in a table
How to create invisible column in a view
Tips 2: Session level sequence in 12c?
Session level sequence
Global level sequence
When to use session level sequence
Tips 3: Extended data type in Oracle 12c?
MAX_STRING_SIZE to extend Length of datatype
Advantage of extended datatype
Tips 4: Truncate table cascade in 12c and prior to 12c solution?
Issue with Truncate prior to 12c
Workaround to remove data prior to 12c
ON DELETE CASCADE
ON DELETE SET NULL
Tips 5: Create default value for NULL column in 12c?
Issue with default value prior to 12c
12c Default value
Tips 6: Auto-populate column using Sequence as Column default value in 12c?
Prior to 12c auto-populate primary key
12c auto-populate primary key using sequence
Tips 7: Default primary key column value using IDENTITY type in 12c?
12c auto-populate primary key using sequence
Tips 8: Occurrence of substring in a string using new regular expression in 11g and prior to 11g
Solution?
Occurrence of substring in a string pre-11g solution
Occurrence of substring in a string 11g solution
Tips 9: Recursively expand sqltext of a view and find how parser rewrite the SQL in 12c?
How to expand the oracle View in 12c?
How parser rewrite your SQL code?
Tips 10: Get distinct count of values across columns
Count across column
How count (*) is different from Count (column name)?
Approximate distinct count in 12c
Tips 11: Fully qualified column reference in Oracle SQL
Tips 12: Advantage and disadvantage of Truncate and steps to check and reclaim unused space
Advantage of Truncate
Disadvantage of Truncate
Defining High Water Mark
Unused space after delete:
Solution to reclaim space
Tips 13: Ignore the LEFT OUTER JOIN result (unwanted records) from 3 or more table JOIN
Tips 14: Control trigger firing using “FOLLOWS” and “PRECEDES” clause in 11g
Tips 15: Improve performance using Oracle Aliases and impact of choosing wrong datatype
Why aliases are required from performance point of view
Impact of choosing wrong data type
Solution using data model change
Solution using data type conversion
Tips 16: Minimize number of table look up and improve response time
Ways to minimize table lookup
Reducing lookup in SELECT
Reducing lookup in UPDATE
Tips 17: Un-interrupted database testing using SET TRANSACTION
Setting oracle isolation level for uninterrupted testing
Tips 18: Connection to sqlplus from command line and example of multiversioning and read Consistency.
Multiversioning with example
Ways to connect to sqlplus without tnsnames configured
Tips 19: Danger of using “NOT IN” clause7
Chapter 8: Generic know how on Oracle PL/SQL for developer (27 Pages)
Tips 1: Sensitive data masking using REDACTION
Defining data masking using redaction
Prior to 12c solution for data masking
12c solution for full masking
12c solution for using substituted value
Tips 2: Define view to act like invoker right programmer unit in 12c
Calling of invoker function from view prior to 12c
Calling of invoker function from view in 12c using BEQUEATH clause
Tips 3: PL/SQL code optimization by “inlining” in 11g
Defining inlining
Inlining using PRAGMA INLINE compiler directive
Inlining by setting PLSQL_OPTIMIZE_LEVEL parameter
Tips 4: Implementation restriction in “FORALL” clause, solution prior to 11g and in 11g?
Pre-11g solution for implementation restriction
11g how it works
Tips 5: Sequence fetching enhancement in 11g?
Sequence fetching prior to 11g
Sequence fetching in 11g as an expression
How to use NEXTVAL/CURRVAL in select with distinct clause
Tips 6: Continue statement in 11g?
Tips 7: Performance improvement using Native compilation enhancement in 11g?
Defining native compilation
Native compilation pre-11g setup
Native compilation 11g setup
View current setting
Tips 8: Restructuring error stack in 12c?
UTL_CALL_STACK to display error content in 12c
Tips 9: Restructuring backtrace in 12c?
UTL_CALL_STACK to display backtrace content in 12c
Tips 10: PL/SQL only data type support in “native dynamic SQL”, “SELECT call” and “as a bind Variable” in 12c?
Defining PL/SQL only data type
BOOLEAN data type in SQL SELECT in 12c and prior to 12c
BOOLEAN data type as bind variable in 12c and prior to 12c
ASSOCIATIVE ARRAY data type as bind variable in 12c and prior to 12c
ASSOCIATIVE ARRAY data type as TABLE operator in 12c and prior to 12c
Tips 11: White listing and accessible by clause in 12c?
Defining white listing
Implementation of white listing using ACCESSIBLE BY clause
Tips 12: Invoker right code with Result_cache in 12c?
Tips 13: Returning implicit statement result set in 12c?
Returning resultset prior to 12c
Returning resultset in 12c
Tips 14: Improvement in conditional compilation in 12c?
Tips 15: Improve performance using Oracle package initialization?
Tips 16: How to match two input string for exact match with any combination?
Tips 17: Improve performance by incorporating one parse and multiple execute use of BIND variable?
Multiple parse multiple execute
One parse multiple execute
SQL INJECTION
Advantage of using bind variable
Tips 18: BULK OPERATION hinders performance and the solution?
Why BULK operation perform best
When BULK operation hinder performance
What is the role of LIMIT clause on BULK OPERATION?
Chapter 9: Generic know how on oracle administration for developer and dba (30 Pages)
Tips 1: Read only user can lock a system on a transaction, resolution in 12c?
Read only user lock a table prior to 12c solution
Read only user lock a table 12c solution
Tips 2: How to find the value of bind variable while running the application?
Tips 3: Granting a Role to PL/SQL subprogram instead of USER in 12c?
Granting role to a user
Granting role to a subprogram in 12c
How to avoid security threat in 12c
Tips 4: Adaptive query optimization and online stats gathering in 12c?
Adaptive plan
Adaptive statistics
Online stats gathering
Tips 5: Faster online table column addition in 12c?
Addition of default column
Issues on addition of default column
Display the growth of table
Tips 6: DDL LOGGING and ONLINE DDL in 12c?
Tips 7: Foreign key is ignored in database?
Tips 8: How to enhance performance by adjusting Oracle clustering Factor
Tips 9: Oracle table Interval Partitioning
Interval partitioning
Rename a partition
Modifying interval in a partition
Tips 10: Adding multiple new Partition in 12c1
Tips 11: Global temporary table enhancement
Tips 12: How to forecast performance of Oracle system
User calls
Arrival rate
CPU utilization
Service time
Response time
Tips 13: Throughput and response time concept
Defining Throughput
Defining response time
Top 5 queries with max disk usage
Ways to improve the throughput
Important thing to consider before using PARALLEL processing
Ways to improve response time
Tips 14: FGAC / VPD in Oracle with simple example
Defining VPD/FGAC
Create the policy function
Add the policy
Example how VPD works
Tips 15: How to know all the dependent tables (parent and child) of any specific tables
Tips 16: Blocking session and blocked session and top running queries
Find blocking session and all the blocked sessions
Find blocked object using v$LOCKED_OBJECT
Find top 5 query for max I/O
Find top 5 query for max elapsed/runtime
Get the reason for wait
Tips 17: Long running Oracle query predict the finish time
Tips 18: Selectivity/Cardinality/histograms and its importance in performance tuning
Selectivity
Cardinality
Selectivity of a column
Selectivity of query/index
Generate histogram statistics
Finding histogram statistics in a table
Tips 19: Find the OS of the server where oracle is running
Tips 20: Find SQL in your application without bind variable
Identify SQL that does not use bind variables
Cursor_sharing parameter
Dynamic performance view V$SYSSTAT
Tips 21: Stats gathering improvement in 12c
Oracle object stat
Pre-12c stat gathering
12c stat gathering in parallel
Tips 22: SQL TRACE and TKPROF formatting?
Setting sql trace
Finding trace file name
Convert trace file into txt file using TKPROF
Tips 23: Fundamental of HEAT MAP in 12c
Tips 24: Case insensitive unique constraint for a table column
Defining Case insensitive unique constraint
Solution 1: Using Virtual column
Solution 2: Using function based index
Tips 25: understanding ORA_ROWSCN and block number for table rows
Defining ORA_ROWSCN
Ora_rowscn at Block level (default)
Ora_rowscn at Row level
Getting number of blocks occupied by a table
Getting number of rows associated with a block
Getting all the rows associated with a block
Use of ORA_ROWSCN on resolving LOST UPDATE
Tips 26: Primary key with non-unique value, possible?
Не без ошибок, конечно, но думаю автор это быстро исправит, т.к. он ее прислал и попросил откомментить, я проверил чуть больше половины: критичных косяков всего 3-4, а остальное - мелочи...