+ All Categories
Home > Documents > Less08 Data Tb

Less08 Data Tb

Date post: 30-May-2018
Category:
Upload: yairr
View: 219 times
Download: 0 times
Share this document with a friend

of 36

Transcript
  • 8/14/2019 Less08 Data Tb

    1/36

    8Copyright 2005, Oracle. All rights reserved.

    Managing Data

  • 8/14/2019 Less08 Data Tb

    2/36

    8-2 Copyright 2005, Oracle. All rights reserved.

    Objectives

    After completing this lesson, you should be able to do

    the following:

    Manage data through the use of SQL

    Identify and administer PL/SQL objects Describe triggers and triggering events

    Monitor and resolve locking conflicts

  • 8/14/2019 Less08 Data Tb

    3/36

  • 8/14/2019 Less08 Data Tb

    4/36

    8-4 Copyright 2005, Oracle. All rights reserved.

    The INSERT Command

    Create one row at a time.

    Insert many rows from another table.

  • 8/14/2019 Less08 Data Tb

    5/36

  • 8/14/2019 Less08 Data Tb

    6/36

    8-6 Copyright 2005, Oracle. All rights reserved.

    The DELETE Command

    Use the DELETE command to remove zero or morerows from a table.

  • 8/14/2019 Less08 Data Tb

    7/368-7 Copyright 2005, Oracle. All rights reserved.

    TheMERGE Command

    Use theMERGE command to perform both INSERT andUPDATE in a single command.

  • 8/14/2019 Less08 Data Tb

    8/368-8 Copyright 2005, Oracle. All rights reserved.

    TheMERGE CommandFull Notes Page

  • 8/14/2019 Less08 Data Tb

    9/368-9 Copyright 2005, Oracle. All rights reserved.

    The COMMIT and ROLLBACKCommands

    These are used to finish a transaction:

    COMMIT: Makes the change permanent

    ROLLBACK: Undoes the change

  • 8/14/2019 Less08 Data Tb

    10/368-10 Copyright 2005, Oracle. All rights reserved.

    Integrity Constraints and DML

  • 8/14/2019 Less08 Data Tb

    11/368-11 Copyright 2005, Oracle. All rights reserved.

    PL/SQL

    Procedural language/structured query language

    (PL/SQL) is a fourth-generation programming language

    (4GL). It provides:

    Procedural extensions to SQL

    Portability across platforms and products

    Higher level of security and data integrity

    protection

    Support for object-oriented programming

  • 8/14/2019 Less08 Data Tb

    12/368-12 Copyright 2005, Oracle. All rights reserved.

    PL/SQL

    Full Notes Page

  • 8/14/2019 Less08 Data Tb

    13/368-13 Copyright 2005, Oracle. All rights reserved.

    Administering PL/SQL Objects

    Database administrators should be able to:

    Identify problem PL/SQL objects

    Recommend the appropriate use of PL/SQL

    Load PL/SQL objects into the database Assist PL/SQL developers in troubleshooting

  • 8/14/2019 Less08 Data Tb

    14/368-14 Copyright 2005, Oracle. All rights reserved.

    PL/SQL Objects

    There are many types of PL/SQL database objects:

    Package

    Package body

    Type body Procedure

    Function

    Trigger

  • 8/14/2019 Less08 Data Tb

    15/368-15 Copyright 2005, Oracle. All rights reserved.

    Functions

  • 8/14/2019 Less08 Data Tb

    16/368-16 Copyright 2005, Oracle. All rights reserved.

    Procedures

    Procedures are used to perform a specific action.

    They:

    Pass values in and out by using an argument list

    Are called with the CALLcommand

  • 8/14/2019 Less08 Data Tb

    17/368-17 Copyright 2005, Oracle. All rights reserved.

    Packages

    Packages are collections of functions and procedures.

    Each package should consist of two objects:

    Package specification

    Package body

    Package specification

  • 8/14/2019 Less08 Data Tb

    18/368-18 Copyright 2005, Oracle. All rights reserved.

    Package Specification and Body

  • 8/14/2019 Less08 Data Tb

    19/368-19 Copyright 2005, Oracle. All rights reserved.

    Built-in Packages

    The Oracle database comes with over 350 built-inPL/SQL packages, which provide:

    Administration and maintenance utilities

    Extended functionality

    Use the DESCRIBE

    command to viewsubprograms.

  • 8/14/2019 Less08 Data Tb

    20/368-20 Copyright 2005, Oracle. All rights reserved.

    Triggers

  • 8/14/2019 Less08 Data Tb

    21/368-21 Copyright 2005, Oracle. All rights reserved.

    Triggering Events

    Examples of EventsEvent Type

    LOGON, LOGOFF, STARTUP, SHUTDOWN,

    SERVERERROR

    Database

    CREATE, DROP, ALTER, GRANT, REVOKE,

    RENAME,

    DDL

    INSERT, UPDATE, DELETEDML

  • 8/14/2019 Less08 Data Tb

    22/368-22 Copyright 2005, Oracle. All rights reserved.

    Locks

    Locks prevent multiple sessions from changing

    the same data at the same time.

    They are automatically obtained at the lowest

    possible level for a given statement.

    They do not escalate.

    Transaction 1

    SQL> UPDATE employees2 SET salary=salary*1.13 WHERE employee_id=100;

    SQL> UPDATE employees2 SET salary=salary+1003 WHERE employee_id=100;

    Transaction 2

  • 8/14/2019 Less08 Data Tb

    23/368-23 Copyright 2005, Oracle. All rights reserved.

    Locking Mechanism

    High level of data concurrency:

    Row-level locks for inserts, updates, and deletes

    No locks required for queries

    Automatic queue management Locks held until the transaction ends (with the

    COMMIT orROLLBACKoperation)

    Transaction 1

    SQL> UPDATE employees2 SET salary=salary*1.13 WHERE employee_id=101;

    SQL> UPDATE employees2 SET salary=salary+1003 WHERE employee_id=100;

    Transaction 2

  • 8/14/2019 Less08 Data Tb

    24/36

  • 8/14/2019 Less08 Data Tb

    25/36

    8-25 Copyright 2005, Oracle. All rights reserved.

    Data Concurrency

    Full Notes Page

  • 8/14/2019 Less08 Data Tb

    26/36

  • 8/14/2019 Less08 Data Tb

    27/36

    8-27 Copyright 2005, Oracle. All rights reserved.

    Enqueue Mechanism

    The enqueue mechanism keeps track of:

    Sessions waiting for locks

    The requested lock mode

    The order in which sessions requested the lock

  • 8/14/2019 Less08 Data Tb

    28/36

    8-28 Copyright 2005, Oracle. All rights reserved.

    Lock Conflicts

    commit;16:30:011 row updated.

    Session continues.

    Many selects, inserts, updates,

    and deletes during the last 7.5hours, but no commits or

    rollbacks!

    16:30:00

    Session still waiting!

    SELECT sum(salary) FROMemployees;

    SUM(SALARY)

    -----------

    692634

    9:00:05UPDATE employees SETCOMMISION_PCT=2 WHERE

    employee_id=101;

    Session waits enqueued due to

    lock conflict.

    UPDATE employees SET

    salary=salary+100 WHERE

    employee_id=101;

    1 row updated.

    9:00:00UPDATE employees SET

    salary=salary+100 WHERE

    employee_id=100;

    1 row updated.

    Transaction 1 Transaction 2Time

  • 8/14/2019 Less08 Data Tb

    29/36

    8-29 Copyright 2005, Oracle. All rights reserved.

    Possible Causes of Lock Conflicts

    Uncommitted changes

    Long-running transactions

    Unnecessarily high locking levels

  • 8/14/2019 Less08 Data Tb

    30/36

    8-30 Copyright 2005, Oracle. All rights reserved.

    Detecting Lock Conflicts

    Select Blocking Sessions from the Performance page.

    Click the Session ID link to view information about the

    locking session, including the actual SQL statement.

  • 8/14/2019 Less08 Data Tb

    31/36

  • 8/14/2019 Less08 Data Tb

    32/36

    8-32 Copyright 2005, Oracle. All rights reserved.

    Resolving Lock Conflicts Using SQL

    SQL statements can be used to determine the blocking

    session and kill it.

    SQL> alter system kill session '144,8982' immediate;

    SQL> select sid, serial#, username

    from v$session where sid in(select blocking_session from v$session)

    Result:

    1

    2

  • 8/14/2019 Less08 Data Tb

    33/36

    8-33 Copyright 2005, Oracle. All rights reserved.

    Deadlocks

    Transaction 2Transaction 1

    UPDATE employees

    SET salary = salary x 1.1WHERE employee_id = 1000;

    UPDATE employeesSET salary = salary x 1.1WHERE employee_id = 2000;

    ORA-00060:Deadlock detected whilewaiting for resource

    UPDATE employees

    SET manager = 1342WHERE employee_id = 2000;

    UPDATE employeesSET manager = 1342WHERE employee_id = 1000;

    9:00

    9:15

    9:16

  • 8/14/2019 Less08 Data Tb

    34/36

    8-34 Copyright 2005, Oracle. All rights reserved.

    Summary

    In this lesson, you should have learned how to:

    Manage data through the use of SQL

    Identify and administer PL/SQL objects

    Describe triggers and triggering events Monitor and resolve locking conflicts

  • 8/14/2019 Less08 Data Tb

    35/36

    8-35 Copyright 2005, Oracle. All rights reserved.

    Practice Overview:

    Administering Schema Objects

    This practice covers the following topics:

    Identifying deadlock conflicts

    Resolving deadlock conflicts

  • 8/14/2019 Less08 Data Tb

    36/36

    Full Notes Page


Recommended