Thursday, April 7, 2016

Oracle FAQs - Part V

ORACLE FREQUENTLY ASKED QUESTIONS - V


When is cost based optimization triggered? (For DBA)
It's important to have statistics on all tables for the CBO (Cost Based Optimizer) to work correctly. If one table involved in a statement does not have statistics, Oracle has to revert to rule-based optimization for that statement. So you really want for all tables to have statistics right away; it won't help much to just have the larger tables analyzed.
Generally, the CBO can change the execution plan when you:
1. Change statistics of objects by doing an ANALYZE;
2. Change some initialization parameters (for example: hash_join_enabled, sort_area_size, db_file_multiblock_read_count).

How can one optimize %XYZ% queries? (For DBA)
It is possible to improve %XYZ% queries by forcing the optimizer to scan all the entries from the index instead of the table. This can be done by specifying hints. If the index is physically smaller than the table (which is usually the case) it will take less time to scan the entire index than to scan the entire table.

What Enter package procedure does? 
Enter Validate-data in the current validation unit.

Where can one find I/O statistics per table? (For DBA)
The UTLESTAT report shows I/O per tablespace but one cannot see what tables in the tablespace has the most I/O. The $ORACLE_HOME/rdbms/admin/catio.sql script creates a sample_io procedure and table to gather the required information. After executing the procedure, one can do a simple SELECT * FROM io_per_object; to extract the required information. For more details, look at the header comments in the $ORACLE_HOME/rdbms/admin/catio.sql script.
My query was fine last week and now it is slow. Why? (For DBA)
The likely cause of this is because the execution plan has changed. Generate a current explain plan of the offending query and compare it to a previous one that was taken when the query was performing well. Usually the previous plan is not available.
Some factors that can cause a plan to change are:
-          Which tables are currently analyzed? Were they previously analyzed? (i.e. was the query using RBO and now CBO?)
-          Has OPTIMIZER_MODE been changed in INIT.ORA?
-          Has the DEGREE of parallelism been defined/changed on any table?
-          Have the tables been re-analyzed? Were the tables analyzed using estimate or compute? If estimate, what percentage was used?
-          Have the statistics changed?
-          Has the INIT.ORA parameter DB_FILE_MULTIBLOCK_READ_COUNT been changed?
-          Has the INIT.ORA parameter SORT_AREA_SIZE been changed?
-          Have any other INIT.ORA parameters been changed?
-          What do you think the plan should be? Run the query with hints to see if this produces the required performance.
-           
Why is Oracle not using the damn index? (For DBA)
This problem normally only arises when the query plan is being generated by the Cost Based Optimizer. The usual cause is because the CBO calculates that executing a Full Table Scan would be faster than accessing the table via the index.
Fundamental things that can be checked are:
. USER_TAB_COLUMNS.NUM_DISTINCT - This column defines the number of distinct values the column holds.
. USER_TABLES.NUM_ROWS - If NUM_DISTINCT = NUM_ROWS then using an index would be preferable to doing a FULL TABLE SCAN. As the NUM_DISTINCT decreases, the cost of using an index increase thereby is making the index less desirable.
. USER_INDEXES.CLUSTERING_FACTOR - This defines how ordered the rows are in the index. If CLUSTERING_FACTOR approaches the number of blocks in the table, the rows are ordered. If it approaches the number of rows in the table, the rows are randomly ordered. In such a case, it is unlikely that index entries in the same leaf block will point to rows in the same data blocks.
. Decrease the INIT.ORA parameter DB_FILE_MULTIBLOCK_READ_COUNT - A higher value will make the cost of a FULL TABLE SCAN cheaper.
. Remember that you MUST supply the leading column of an index, for the index to be used (unless you use a FAST FULL SCAN or SKIP SCANNING).
. There are many other factors that affect the cost, but sometimes the above can help to show why an index is not being used by the CBO. If from checking the above you still feel that the query should be using an index, try specifying an index hint. Obtain an explain plan of the query either using TKPROF with TIMED_STATISTICS, so that one can see the CPU utilization, or with AUTOTRACE to see the statistics. Compare this to the explain plan when not using an index.

When should one rebuild an index? (For DBA)
You can run the 'ANALYZE INDEX VALIDATE STRUCTURE' command on the affected indexes - each invocation of this command creates a single row in the INDEX_STATS view. This row is overwritten by the next ANALYZE INDEX command, so copy the contents of the view into a local table after each ANALYZE. The 'badness' of the index can then be judged by the ratio of 'DEL_LF_ROWS' to 'LF_ROWS'.

What are the unrestricted procedures used to change the popup screen position during run time? 
Anchor-view
Resize -View
Move-View.

What is an Alert? 
An alert is window that appears in the middle of the screen overlaying a portion of the current display.

Deleting a page removes information about all the fields in that page? 
a. True. b. False

a. True.

Two popup pages can appear on the screen at a time?Two popup pages can appear on the screen at a time?
a. True. b. False?
 
a. True.

Classify the restricted and unrestricted procedure from the following.
a. Call
b. User-Exit
c. Call-Query
d. Up
e. Execute-Query
f. Message
g. Exit-From
h. Post
i. Break?
 

a. Call - unrestricted
b. User Exit - Unrestricted
c. Call_query - Unrestricted
d. Up - Restricted
e. Execute Query - Restricted
f. Message - Restricted
g. Exit_form - Restricted
h. Post - Restricted
i. Break - Unrestricted.

What is an User Exits? 
A user exit is a subroutine which are written in programming languages using pro*C pro *Cobol , etc., that link into the SQL * forms executable.

What is a Trigger? 
A piece of logic that is executed at or triggered by a SQL *forms event.

What is a Package Procedure? 
A Package procedure is built in PL/SQL procedure.

What is the maximum size of a form? 
255 character width and 255 characters Length.

What is the difference between system.current_field and system.cursor_field? 
1. System.current_field gives name of the field.
2. System.cursor_field gives name of the field with block name.

List the system variables related in Block and Field? 
1. System.block_status
2. System.current_block
3. System.current_field
4. System.current_value
5. System.cursor_block
6. System.cursor_field
7. System.field_status.

What are the different types of Package Procedure? 
1. Restricted package procedure.
2. Unrestricted package procedure.

What are the types of TRIGGERS? 
1. Navigational Triggers.
2. Transaction Triggers.

Identify package function from the following? 
1. Error-Code
2. Break
3. Call
4. Error-text
5. Form-failure
6. Form-fatal
7. Execute-query
8. Anchor View
9. Message_code?
 

1. Error_Code
2. Error_Text
3. Form_Failure
4. Form_Fatal
5. Message_Code

Can you attach an lov to a field at run-time? if yes, give the build-in name.? 
Yes. Set_item_proprety

Is it possible to attach same library to more than one form? 
Yes

Can you attach an lov to a field at design time? 
Yes

List the windows event triggers available in Forms 4.0? 
When-window-activated,
when-window-closed,
when-window-deactivated,
when-window-resized

What are the triggers associated with the image item? 
When-Image-activated (Fires when the operator double clicks on an image Items)
When-image-pressed(fires when the operator selects or deselects the image item)

What is a visual attribute? 
Visual Attributes are the font, color and pattern characteristics of objects that operators see and interact with in our application.

How many maximum number of radio buttons can you assign to a radio group? 
Unlimited no of radio buttons can be assigned to a radio group

How do you pass the parameters from one form to another form?
To pass one or more parameters to a called form, the calling form must perform the following steps in a trigger or user named routine execute the create_parameter_list built-in function to programmatically. Create a parameter list to execute the add parameter built-in procedure to add one or more parameters list. Execute the call_form, New_form or run_product built_in procedure and include the name or id of the parameter list to be passed to the called form.

What is a Layout Editor? 
The Layout Editor is a graphical design facility for creating and arranging items and boilerplate text and graphics objects in your application's interface.

List the Types of Items? 
Text item.
Chart item.
Check box.
Display item.
Image item.
List item.
Radio Group.
User Area item.

List system variables available in forms 4.0, and not available in forms 3.0? 
System.cordination_operation
System Date_threshold
System.effective_Date
System.event_window
System.suppress_working

What are the display styles of an alert? 
Stop, Caution, note

What built-in is used for showing the alert during run-time? 
Show_alert.

What built-in is used for changing the properties of the window dynamically? 
Set_window_property
Canvas-View

What are the different types of windows? 
Root window, secondary window.

What is a predefined exception available in forms 4.0? 
Raise form_trigger_failure

What is a radio Group? 
Radio groups display a fixed no of options that are mutually exclusive. User can select one out of n number of options.

What are the different type of a record group? 
Query record group
Static record group
Non query record group

What are the menu items that oracle forms 4.0 supports? 
Plain, Check,Radio, Separator, Magic

Give the equivalent term in forms 4.0 for the following. Page, Page 0? 
Page - Canvas-View
Page 0 - Canvas-view null.

What triggers are associated with the radio group? 
Only when-radio-changed trigger associated with radio group
Visual Attributes.

What are the triggers associated with a check box? 
Only When-checkbox-activated Trigger associated with a Check box.

Can you attach an alert to a field? 
No

Can a root window be made modal? 
No

What is a list item? 
It is a list of text elements.

List some built-in routines used to manipulate images in image_item? 
Image_add
Image_and
Image_subtract
Image_xor
Image_zoom

Can you change the alert messages at run-time? 
If yes, give the name of the built-in to change the alert messages at run-time. Yes. Set_alert_property.

What is the built-in used to get and set lov properties during run-time? 
Get_lov_property
Set_lov_property
Record Group

What is the built-in routine used to count the no of rows in a group? 
Get_group _row_count
System Variables

Give the Types of modules in a form? 
Form
Menu
Library

Write the Abbreviation for the following File Extension 1. FMB 2. MMB 3. PLL? 
FMB ----- Form Module Binary.
MMB ----- Menu Module Binary.
PLL ------ PL/SQL Library Module Binary.

List the built-in routine for controlling window during run-time? 
Find_window,
get_window_property,
hide_window,
move_window,
resize_window,
set_window_property,
show_View

List the built-in routine for controlling window during run-time? 
Find_canvas
Get-Canvas_property
Get_view_property
Hide_View
Replace_content_view
Scroll_view
Set_canvas_property
Set_view_property
Show_view
Alert

What is the built-in function used for finding the alert? 
Find_alert
Editors

List the editors availables in forms 4.0? 
Default editor
User_defined editors
system editors.

What buil-in routines are used to display editor dynamically? 
Edit_text item
show_editor
LOV

What is an Lov?
A list of values is a single or multi column selection list displayed in a pop-up window

What is a record Group? 
A record group is an internal oracle forms data structure that has a similar column/row frame work to a database table

Give built-in routine related to a record groups? 
Create_group (Function)
Create_group_from_query(Function)
Delete_group(Procedure)
Add_group_column(Function)
Add_group_row(Procedure)
Delete_group_row(Procedure)
Populate_group(Function)
Populate_group_with_query(Function)
Set_group_Char_cell(procedure)

List the built-in routines for the controlling canvas views during run-time? 
Find_canvas
Get-Canvas_property
Get_view_property
Hide_View
Replace_content_view
Scroll_view
Set_canvas_property
Set_view_property
Show_view
Alert

System.effective_date system variable is read only True/False? 
False

What are the built_in used to trapping errors in forms 4? 
Error_type return character
Error_code return number
Error_text return char
Dbms_error_code return no.
Dbms_error_text return char

What is Oracle Financials? (For DBA)
Oracle Financials products provide organizations with solutions to a wide range of long- and short-term accounting system issues. Regardless of the size of the business, Oracle Financials can meet accounting management demands with:
Oracle Assets: Ensures that an organization's property and equipment investment is accurate and that the correct asset tax accounting strategies are chosen.
Oracle General Ledger: Offers a complete solution to journal entry, budgeting, allocations, consolidation, and financial reporting needs.
Oracle Inventory: Helps an organization make better inventory decisions by minimizing stock and maximizing cash flow.
Oracle Order Entry: Provides organizations with a sophisticated order entry system for managing customer commitments.
Oracle Payables: Lets an organization process more invoices with fewer staff members and tighter controls. Helps save money through maximum discounts, bank float, and prevention of duplicate payment.
Oracle Personnel: Improves the management of employee- related issues by retaining and making available every form of personnel data.
Oracle Purchasing: Improves buying power, helps negotiate bigger discounts, eliminates paper flow, increases financial controls, and increases productivity.
Oracle Receivables:. Improves cash flow by letting an organization process more payments faster, without off-line research. Helps correctly account for cash, reduce outstanding receivables, and improve collection effectiveness.
Oracle Revenue Accounting Gives an organization timely and accurate revenue and flexible commissions reporting.
Oracle Sales Analysis: Allows for better forecasting, planning and reporting of sales information.

What are the design facilities available in forms 4.0? 
Default Block facility.
Layout Editor.
Menu Editor.
Object Lists.
Property Sheets.
PL/SQL Editor.
Tables Columns Browser.
Built-ins Browser.

What is the most important module in Oracle Financials? (For DBA)
The General Ledger (GL) module is the basis for all other Oracle Financial modules. All other modules provide information to it. If you implement Oracle Financials, you should switch your current GL system first.GL is relatively easy to implement. You should go live with it first to give your implementation team a chance to be familiar with Oracle Financials.

What are the types of canvas-views? 
Content View, Stacked View.

What is the MultiOrg and what is it used for? (For DBA)
MultiOrg or Multiple Organizations Architecture allows multiple operating units and their relationships to be defined within a single installation of Oracle Applications. This keeps each operating unit's transaction data separate and secure.
Use the following query to determine if MuliOrg is intalled:
select multi_org_flag from fnd_product_groups;

What is the difference between Fields and FlexFields? (For DBA)
A field is a position on a form that one uses to enter, view, update, or delete information. A field prompt describes each field by telling what kind of information appears in the field, or alternatively, what kind of information should be entered in the field.
A flexfield is an Oracle Applications field made up of segments. Each segment has an assigned name and a set of valid values. Oracle Applications uses flexfields to capture information about your organization. There are two types of flexfields: key flexfields and descriptive flexfields.

Explain types of Block in forms4.0? 
Base table Blocks.
Control Blocks.
1. A base table block is one that is associated with a specific database table or view.
2. A control block is a block that is not associated with a database table. ITEMS

What is an Alert? 
An alert is a modal window that displays a message notifies the operator of some application condition

What are the built-in routines is available in forms 4.0 to create and manipulate a parameter list? 
Add_parameter
Create_Parameter_list
Delete_parameter
Destroy_parameter_list
Get_parameter_attr
Get_parameter_list
set_parameter_attr

What is a record Group? 
A record group is an internal oracle forms data structure that has a similar column/row frame work to a database table

What is a Navigable item? 
A navigable item is one that operators can navigate to with the keyboard during default navigation, or that Oracle forms can navigate to by executing a navigational built-in procedure.

What is a library in Forms 4.0? 
A library is a collection of Pl/SQL program units, including user named procedures, functions & packages
How image_items can be populate to field in forms 4.0? 
A fetch from a long raw database column PL/Sql assignment to executing the read_image_file built_in procedure to get an image from the file system.

What is the content view and stacked view? 
A content view is the "Base" view that occupies the entire content pane of the window in which it is displayed. A stacked view differs from a content canvas view in that it is not the base view for the window to which it is assigned.

What is a Check Box?
A Check Box is a two state control that indicates whether a certain condition or value is on or off, true or false. The display state of a check box is always either "checked" or "unchecked".

What is a canvas-view? 
A canvas-view is the background object on which you layout the interface items (text-items, check boxes, radio groups, and so on.) and boilerplate objects that operators see and interact with as they run your form. At run-time, operators can see only those items that have been assigned to a specific canvas. Each canvas, in term, must be displayed in a specific window.

Explain the following file extension related to library? 
.pll,.lib,.pld
The library pll files is a portable design file comparable to an fmb form file
The library lib file is a plat form specific, generated library file comparable to a fmx form file
The pld file is Txt format file and can be used for source controlling your library files Parameter

Explain the usage of WHERE CURRENT OF clause in cursors? 
WHERE CURRENT OF clause in an UPDATE, DELETE statement refers to the latest row fetched from a cursor. Database Triggers

Name the tables where characteristics of Package, procedure and functions are stored? 
User_objects, User_Source and User_error.

Explain the two type of Cursors? 
There are two types of cursors, Implicit Cursor and Explicit Cursor. PL/SQL uses Implicit Cursors for queries. User defined cursors are called Explicit Cursors. They can be declared and used.

What are two parts of package? 
The two parts of package are PACKAGE SPECIFICATION & PACKAGE BODY. Package Specification contains declarations that are global to the packages and local to the schema. Package Body contains actual procedures and local declaration of the procedures and cursor declarations.

What are two virtual tables available during database trigger execution? 
The table columns are referred as OLD.column_name and NEW.column_name.
For triggers related to INSERT only NEW.column_name values only available.
For triggers related to UPDATE only OLD.column_name NEW.column_name values only available.
For triggers related to DELETE only OLD.column_name values only available.

What is Fine Grained Auditing? (For DBA)
Fine Grained Auditing (DBMS_FGA) allows auditing records to be generated when certain rows are selected from a table. A list of defined policies can be obtained from DBA_AUDIT_POLICIES. Audit records are stored in DBA_FGA_AUDIT_TRAIL. Look at this example:
o Add policy on table with autiting condition...
execute dbms_fga.add_policy ('HR', 'EMP', 'policy1', 'deptno >  10');
o Must ANALYZE, this feature works with CBO (Cost Based Optimizer)
analyze table EMP compute statistics;
select * from EMP where c1 = 11; -- Will trigger auditing
select * from EMP where c1 = 09; -- No auditing
o Now we can see the statments that triggered the auditing condition...
select sqltext from sys.fga_log$;
delete from sys.fga_log$;

What is a package? What are the advantages of packages? What is Pragma EXECPTION_INIT? Explain the usage? 
The PRAGMA EXECPTION_INIT tells the complier to associate an exception with an oracle error. To get an error message of a specific oracle error. e.g. PRAGMA EXCEPTION_INIT (exception name, oracle error number)

What is a Virtual Private Database? (For DBA)
Oracle 8i introduced the notion of a Virtual Private Database (VPD). A VPD offers Fine-Grained Access Control (FGAC) for secure separation of data. This ensures that users only have access to data that pertains to them. Using this option, one could even store multiple companies' data within the same schema, without them knowing about it. VPD configuration is done via the DBMS_RLS (Row Level Security) package. Select from SYS.V$VPD_POLICY to see existing VPD configuration.

What is Raise_application_error? 
Raise_application_error is a procedure of package DBMS_STANDARD which allows to issue an user_defined error messages from stored sub-program or database trigger.

What is Oracle Label Security? (For DBA)
Oracle Label Security (formerly called Trusted Oracle MLS RDBMS) uses the VPD (Virtual Private Database) feature of Oracle8i to implement row level security. Access to rows are restricted according to a user's security sensitivity tag or label. Oracle Label Security is configured, controlled and managed from the Policy Manager, an Enterprise Manager-based GUI utility.

Give the structure of the procedure? 
PROCEDURE name (parameter list.....)
is
local variable declarations
BEGIN
Executable statements.
Exception.
exception handlers
end;


What is OEM (Oracle Enterprise Manager)? (For DBA)
OEM is a set of systems management tools provided by Oracle Corporation for managing the Oracle environment. It provides tools to monitor the Oracle environment and automate tasks (both one-time and repetitive in nature) to take database administration a step closer to "Lights Out" management.

No comments: