Chapter 3 Effects of IT on Strategy and

advertisement

Chapter 6

Additional Database Objects

(up to p.218 and all in the pptx file)

Dr. Chen, Oracle Database System (Oracle)

Jason C. H. Chen , Ph.D.

Professor of MIS

School of Business

Gonzaga University

Spokane, WA 99258 USA chen@gonzaga.edu

1

Objectives

• Define the purpose of a sequence and state how it can be used in a database

• Explain why gaps may appear in the integers generated by a sequence

• Use the CREATE SEQUENCE command to create a sequence

• Call and use sequence values

• Identify which options cannot be changed by the

ALTER SEQUENCE command

• Delete a sequence

• Create indexes with the CREATE INDEX command

• Explain the main index structures: B-tree and bitmap

Dr. Chen, Oracle Database System (Oracle) 2

Objectives (continued)

• Verify index use with the explain plan

• Introduce variations on conventional indexes, including a function-based index and an index organized table

• Verify index existence via the data dictionary

• Rename an index with the ALTER INDEX command

• Remove an index using the DROP INDEX command

• Create and remove a public synonym

Dr. Chen, Oracle Database System (Oracle) 3

Database Objects

• An object is anything that has a name and defined structure

• Includes:

– Table – stores data

– Sequence – generates sequential integers (for the pk) by the system (e.g., Oracle) automatically

– Index – allows users to quickly locate specific records

– Synonym – alias for other database objects

Dr. Chen, Oracle Database System (Oracle) 4

Sequences

• Used for internal control purposes by providing sequential integers for auditing

• Used to generate unique value for primary key column

– Surrogate key = no correlation with actual row contents

Dr. Chen, Oracle Database System (Oracle) 5

Creating a Sequence

• Use the CREATE SEQUENCE command

• Various intervals are allowed – Default: 1

• You can specify the starting number – Default: 1

CREATE SEQUENCE sequencename

[ INCREASE BY value]

[ START WITH value]

[{MAXVALUE value | MAXVALUE}]

[{MINVALUE value | MINVALUE}]

[{CYCLE | NOCYLE}]

[{ORDER | NOORDER}]

[{CACHE value | NOCACHE}];

Figure 6-1 Syntax of the CREATE SEQUENCE command

Dr. Chen, Oracle Database System (Oracle) 6

Creating a Sequence (continued)

• Can specify MINVALUE for decreasing sequence and MAXVALUE for increasing sequence

• Numbers can be reused if CYCLE is specified

– The options determine whether Oracle should begin reissuing values from the sequence after reaching the minimum or maximum value.

• ORDER clause is used in application cluster environment

• Use CACHE to pregenerate integers – Default: 20

Dr. Chen, Oracle Database System (Oracle) 7

ORDERS Data Files

Dr. Chen, Oracle Database System (Oracle) 8

Refresh the Database

• 1. Go to Blackboard and download (two) data files from Oracle chapter6 and save under c:\oradata\chapter6\

• 2. Run the following script file

– Start c:\oradata\chapter6\JLDB_Build_6.sql

Dr. Chen, Oracle Database System (Oracle) 9

Creating a Sequence (continued)

Figure 6-3 Syntax of the INSERT command

Dr. Chen, Oracle Database System (Oracle) 10

Creating a Sequence (continued)

Figure 6-4 Query USER-OBJECTS to verify existing sequence

Dr. Chen, Oracle Database System (Oracle) 11

Creating a Sequence (continued)

• To verify the settings for options of a sequence, query

USER_SEQUENCES data dictionary view

Figure 6-5 Verifying sequence option settings

SELECT SEQUENCE_NAME

FROM USER_SEQUENCES;

SEQUENCE_NAME

------------------------------

ORDERS_ORDER#_SEQ

Dr. Chen, Oracle Database System (Oracle)

Next Number to issue

12

Using Sequence Values

• NEXTVAL – generates integer

Figure 6-6 Inserting a row, using a sequence to provide a PRIMARY KEY value

Dr. Chen, Oracle Database System (Oracle) 13

Using Sequence Values (continued)

Figure 6-7 Order added, using a sequence value for the Order#

Dr. Chen, Oracle Database System (Oracle) 14

Using Sequence Values (continued)

• CURRVAL – contains last integer generated by

NEXTVAL cpk

Figure 6-8 Using CURRVAL to insert an order detail row

INSERT INTO orderitems (order#, item#, isbn, quantity, paideach)

VALUES (orders_order#_seq.CURRVAL, 1, 8117949391, 1, 8.50);

Dr. Chen, Oracle Database System (Oracle) 15

Using Sequence Values (continued)

Figure 6-9 Verify the CURRVAL value

Dr. Chen, Oracle Database System (Oracle) 16

Using Sequence Values (continued)

Figure 6-9 Verify the CURRVAL value

Dr. Chen, Oracle Database System (Oracle) 17

Setting and Altering Sequence Definitions

Oracle 12c provides a new feature that allows a sequence

CURRVAL or NEXTVAL to be set as the default value of a column.

SQL> -- chapter 6, Figure 6-10; p. 192

SQL> CREATE SEQUENCE test_defval_seq

2 INCREMENT BY 1

3 START WITH 100

4 NOCACHE

5 NOCYCLE;

SQL> DESCRIBE test_defval;

Name Null? Type

-------------------------------- -------- ---------------

COL1 NUMBER

COL2 NUMBER

Sequence created.

SQL>

SQL> CREATE TABLE test_defval

2 (col1 NUMBER DEFAULT test_defval_seq.NEXTVAL

,

3 Col2 NUMBER);

Table created.

Now that the objects and the default column value setting is in place, execute the Insert statements in Figure 6-11 (next slide) to confirm the effect of different styles of Insert statements on the default value setting.

Dr. Chen, Oracle Database System (Oracle) 18

SQL> -- chapter 6, Figure 6-11; p. 193

SQL> INSERT INTO test_defval (col1, col2)

2 VALUES (DEFAULT, 350);

1 row created.

SQL> -- chapter 6, Figure 6-12; p. 193

SQL> SELECT *

2 FROM test_defval;

SQL> INSERT INTO test_defval (col2)

2 VALUES (355);

1 row created.

SQL> INSERT INTO test_defval (col1, col2)

2 VALUES (222, 360);

1 row created.

COL1 COL2

---------- ----------

100 350

101 355

222 360

Dr. Chen, Oracle Database System (Oracle) 19

Altering Sequence Definitions

• Use ALTER SEQUENCE command to change the settings for a sequence

• START WITH value cannot be altered – drop the sequence and re-create it

• Changes cannot make current integers invalid

Dr. Chen, Oracle Database System (Oracle) 20

ALTER SEQUENCE Command

Example

Figure 6-14 Command to change the INCREMENT BY setting for a sequence

Dr. Chen, Oracle Database System (Oracle) 21

Checking Values on Sequences and SYSDATE

Dr. Chen, Oracle Database System (Oracle)

Figure 6-15 New setting for the

ORDERS_ORDER#_SEQ sequence

Figure 6-14, 6-15 Using the

DUAL table

ALTER SEQUENCE orders_order#_seq

INCREMENT BY 10;

SELECT *

FROM user_sequences;

22

Checking

Values on

Sequences

Figure 6-17 Testing sequence values with the DUAL table

Dr. Chen, Oracle Database System (Oracle)

Why

1041?

23

Removing a Sequence

• Use the DROP SEQUENCE command to delete a sequence

• Previous values generated are not affected by removing a sequence from a database

Figure 6-19 Dropping the ORDERS_ORDER#_SEQ sequence

Dr. Chen, Oracle Database System (Oracle) 24

Removing a Sequence (continued)

Figure 6-20 Verify that the sequence is removed

Dr. Chen, Oracle Database System (Oracle) 25

Indexes –

Query Optimization

• An index stores frequently referenced values and

ROWIDs

• Can be based on one column, multiple columns, functions, or expressions

• If database query activity (e.g., process speed) is the priority

– Indexes should be considered

• If database operations involve more DML actions than query actions

– Index creation should be minimized

Dr. Chen, Oracle Database System (Oracle) 26

B-Tree Index

Figure 6-25 B-tree index organization

Dr. Chen, Oracle Database System (Oracle) 27

B-Tree Index (continued)

Implicitly create an index by PRIMARY

KEY and UNIQUE constraints

Explicitly create an index by using the

CREATE INDEX command

For example:

SELECT index_name FROM user_indexes;

-- result on the next slide

Dr. Chen, Oracle Database System (Oracle) 28

Examples on Query Optimization

• Note that the following slides are not in the text.

• Please study them thoroughly and practice all examples (SQL commands are available in the ‘Ch6Queries.sql’.

Dr. Chen, Oracle Database System (Oracle) 29

For example:

SELECT index_name FROM user_indexes;

INDEX_NAME

------------------------------

ACCTBONUS_AMID_PK

BOOKAUTHOR_PK

ORDERITEMS_PK

BOOKS_ISBN_PK

INDEX_NAME

------------------------------

ENROLLMENT_PK

COURSE_SECTION_CSEC_ID_PK

BOOKS_COST_IDX

AUTHOR_AUTHORID_PK

PUBLISHER_PUBID_PK

ORDERS_ORDER#_PK

CUSTOMERS_ZIP_DESC_IDX

CUSTOMERS_ZIP_IDX

CUSTOMERS_CUSTOMER#_PK

COURSE_COURSE_ID_PK

TERM_TERM_ID_PK

STUDENT_S_ID_PK

SYS_IL0000110103C00010$$

FACULTY_F_ID_PK

PUBLISHER3_PUBID_PK

PUBLISHER2_PUBID_PK

REPCONTRACTS_PK

EMPLOYEES_EMPNO_PK

PT_CHARG_PATIENTNO_ITEMCODE_PK

ITEM_ITEM_CODE_PK

ROOM_ROOM_NO_PK

ACCOMODATION_ACCOM_ID_PK

DOCTOR_PHYSCIAN_ID__PK

PATIENT_PATIENT_NO_PK

LOCATION_LOC_ID_PK

BOOKSTORES_ID_PK

BOOKSTORES_NAME_UK

STOREREPS_ID_PK

32 rows selected.

What specific information is displayed on the output?

Answer: _____

Dr. Chen, Oracle Database System (Oracle) Since they are all implicitly indexed.

30

Implicitly Index (cont.)

-- enter in SQL DEVELOPER

SELECT table_name, index_name, index_type

FROM user_indexes;

Dr. Chen, Oracle Database System (Oracle) 31

Optimizing Query Processing -

A Quick Way to Speed Access to Your data

• Indexes may be used to improve the efficiency of data searches to meet particular search criteria after the table has been in use for some time. Therefore, the ability to create indexes quickly and efficiently at any time is important.

• SQL indexes can be created on the basis of any selected attributes

Dr. Chen, Oracle Database System (Oracle) 32

Optimizing Query Processing – an example ( not in the text)

BOOKS

ISBN Title PubDate PubID

VARCHAR2(10) VARCHAR2(30) DATE

Cost Retail Discount Category

NUMBER(2) NUMBER(5,2) NUMBER(5,2) NUMBER(4,2) VARCHAR2(12)

BOOKS

Dr. Chen, Oracle Database System (Oracle) 33

-- chapter 6, (about the same as Figure 6-36; p. 210)

-- 'BOOKS' must be in upper case

SELECT table_name, index_name, index_type

FROM user_indexes

WHERE table_name = 'BOOKS';

Optimizing Query

Processing

SELECT isbn, title, cost, category

FROM books

WHERE cost > 20;

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

2147428890 SHORTEST POEMS 21.85 LITERATURE

7 rows selected.

Dr. Chen, Oracle Database System (Oracle) 34

Optimizing Query Processing

(conti.)

Syntax:

CREATE

ON

INDEX table_name name_of_index

(field_to_be_indexed);

For example (but, do not enter the

SQL command now):

CREATE INDEX books_cost_idx

ON books (cost);

Note that this statement defines an index called books_cost_idx for the cost column in the books table.

This index ensures that in the next example SQL only needs to look at row in the database that satisfy the

WHERE condition, and is, therefore, quicker to produce an answer.

Dr. Chen, Oracle Database System (Oracle) 35

Optimizing Query Processing (conti.)

Type the following SQL:

SELECT isbn, title, cost, category

FROM books

WHERE cost > 20;

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

2147428890 SHORTEST POEMS 21.85 LITERATURE

7 rows selected.

CREATE INDEX books_cost_idx ON books (cost);

SQL> CREATE INDEX books_cost_idx ON books (cost);

Index created.

Dr. Chen, Oracle Database System (Oracle) 36

Optimizing Query Processing

(conti.)

SELECT isbn, title, cost, category

FROM books

WHERE cost > 20;

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

2147428890 SHORTEST POEMS 21.85 LITERATURE

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

7 rows selected.

What is the difference on the output between these two versions?

Dr. Chen, Oracle Database System (Oracle) 37

Before “INDEX”.

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

2147428890 SHORTEST POEMS 21.85 LITERATURE

7 rows selected.

After “INDEX”.

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

2147428890 SHORTEST POEMS 21.85 LITERATURE

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

7 rows selected.

Dr. Chen, Oracle Database System (Oracle) 38

SET TIMING ON and OFF

DROP INDEX books_cost_idx ;

SET TIMING ON;

SELECT isbn, title, cost, category

FROM books

WHERE cost > 20;

CREATE INDEX books_cost_idx ON books (cost);

SELECT isbn, title, cost, category

FROM books

WHERE cost > 20;

SET TIMING OFF; (results are shown on the next slide)

Dr. Chen, Oracle Database System (Oracle) 39

SQL> SET TIMING ON;

SQL>

SQL> SELECT isbn, title, cost, category

2 FROM books

3 WHERE cost > 20;

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

2147428890 SHORTEST POEMS 21.85 LITERATURE

7 rows selected.

Elapsed: 00:00:00.02

SQL>

SQL> CREATE INDEX books_cost_idx ON books (cost);

Index created.

Elapsed: 00:00:00.00

Dr. Chen, Oracle Database System (Oracle) 40

SQL> SELECT isbn, title, cost, category

2 FROM books

3 WHERE cost > 20;

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

2147428890 SHORTEST POEMS 21.85 LITERATURE

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

7 rows selected.

Elapsed: 00:00:00.01

SQL>

SQL> SET TIMING OFF;

Dr. Chen, Oracle Database System (Oracle) 41

Index on Query Optimization (conti.)

-- chapter 6, (about the same as Figure 6-36; p. 210 )

-- 'BOOKS' must be in uppe r case

SELECT table_name, index_name, index_type

FROM user_indexes

WHERE table_name = 'BOOKS';

Dr. Chen, Oracle Database System (Oracle) 42

Query Optimization: DROP INDEX

DROP INDEX books_cost_idx;

DROP INDEX books_cost_desc_idx;

-- chapter 6, (about the same as Figure 6-36; p. 210 )

-- 'BOOKS' must be in upper case

SELECT table_name, index_name, index_type

FROM user_indexes

WHERE table_name = 'BOOKS';

Dr. Chen, Oracle Database System (Oracle) 43

Index on Query Optimization (conti.)

-- default is ‘ ASCENDING

CREATE INDEX books_cost_desc_idx

ON books (cost DESC );

SELECT isbn, title, cost, category

FROM books

WHERE cost > 20;

ISBN TITLE COST CATEGORY

---------- ------------------------------ ---------- ------------

1915762492 HANDCRANKED COMPUTERS 21.8 COMPUTER

2147428890 SHORTEST POEMS 21.85 LITERATURE

8843172113 DATABASE IMPLEMENTATION 31.4 COMPUTER

4981341710 BUILDING A CAR WITH TOOTHPICKS 37.8 CHILDREN

9959789321 E-BUSINESS THE EASY WAY 37.9 COMPUTER

3957136468 HOLY GRAIL OF ORACLE 47.25 COMPUTER

2491748320 PAINLESS CHILD-REARING 48 FAMILY LIFE

7 rows selected.

Why the output is still displayed as

“ ascending

” order?

Internally, the books table has been indexed as ‘ descending

’ order (using pointer

); however, the display is on the ‘ ascending

’ (default) order.

Dr. Chen, Oracle Database System (Oracle) 44

Index on Query Optimization (conti.)

-- chapter 6, (about the same as Figure 6-30; p. 199 )

-- 'BOOKS' must be in uppe r case

SELECT table_name, index_name, index_type

FROM user_indexes

WHERE table_name = 'BOOKS';

Dr. Chen, Oracle Database System (Oracle) 45

Query Optimization: DROP INDEX

DROP INDEX books_cost_idx;

DROP INDEX books_cost_desc_idx;

-- chapter 6, (about the same as Figure 6-30; p. 199 )

-- 'BOOKS' must be in upper case

SELECT table_name, index_name, index_type

FROM user_indexes

WHERE table_name = 'BOOKS';

Dr. Chen, Oracle Database System (Oracle) 46

Summary on Optimizing Query Processing

(cont.)

The indexes are defined so as to optimize the processing of SELECT statements.

An index is never explicitly referenced in a SELECT statement; the syntax of SQL does not allow this;

During the processing of a statement, SQL itself determines whether an existing index will be used;

An index may be created or deleted at any time;

When updating, inserting or deleting rows, SQL also maintains the indexes on the tables concerned. This means that, on the one hand, the processing time for SELECT statements is reduced, while, on the other hand, the processing time for update statements (such as INSERT,

UPDATE and DELETE) can increase.

Dr. Chen, Oracle Database System (Oracle) 47

Your Turn …

• Practice the following examples (from the text)

Dr. Chen, Oracle Database System (Oracle) 48

CREATE INDEX Command Examples

Figure 6-24

Dr. Chen, Oracle Database System (Oracle)

Creating an index on the Zip column

49

The Explain Plan

Figure 6-26 View the explain plan indicating a full table scan

Dr. Chen, Oracle Database System (Oracle) 50

optimizer hint

The Explain Plan (continued)

Figure 6-27 View the explain plan indicating a full table scan (using an optimizer hint)

Dr. Chen, Oracle Database System (Oracle) 51

UNIQUE INDEX

Unique index should be used on appropriate columns because this type of index assists performance by verifying that duplicate values aren’t entered in a column during DML operation.

Figure 6-28Explicitly creating a unique index

-- chapter 6, Figure 6-28; p. 205

CREATE UNIQUE INDEX books_title_idx

ON books (title);

Dr. Chen, Oracle Database System (Oracle) 52

CREATE INDEX Command Examples

-- chapter 6, Figure 6-29; p. 205

CREATE INDEX customers_zip_desc_idx

ON customers (zip DESC);

The composite index could improve the performance of queries that include a search condition on both the Lastname and Firstname column.

Generally, it is more efficient than creating two separate singlecolumn indexes because less I/O is required to read a single index.

Figure 6-30 Creating a composite index

Dr. Chen, Oracle Database System (Oracle) 53

Verifying Composite Index

SELECT customer#, lastname, firstname, city, state, zip

FROM customers;

-- chapter 6, Figure 6-30; p. 206

CREATE INDEX customer_name_idx

ON customers (lastname, firstname);

SELECT customer#, lastname, firstname, city, state, zip

FROM customers;

Any performance improvement?

After tested, no significant performance can be found since it is a very small database.

Dr. Chen, Oracle Database System (Oracle) 54

• Practice all the examples in the text.

• A Script file is available on the Bb (file name: Ch6Queries.sql

)

• After completing all examples, do the HW.

Dr. Chen, Oracle Database System (Oracle) 55

Homework Hands-On Assignments

Upload the spooled file (*.txt) to the Bb (under

“Assignments & Projects”) by the deadline.

Read and Practice all examples on Chapters 6

• 1. Run the script files (in the folder

\oradata\chapter5\): JLDB_Build_6.sql

• 2. Read Oracle assignment and create a script file

Oracle_ch6_Lname_Fname.sql for questions (#1 to #5 and #9; pp.222-223) on “Hands-on

Assignments”. Use appropriate

COLUMN statements to produce readable outputs if needed.

• 3. Execute and test one problem at a time and make sure they are all running successfully.

• 4. When you done, spool the script files (see next slide for spooling instructions) and UPLOAD the spooled file (Oracle_ch6_Spool_Lname_Fname.txt) to Bb by the deadline .

Dr. Chen, Oracle Database System (Oracle) 56

Summary

• A sequence can be created to generate a series of integers

• The values generated by a sequence can be stored in any table

• A sequence is created with the CREATE SEQUENCE command

• Gaps in sequences might occur if the values are stored in various tables, if numbers are cached but not used, or if a rollback occurs

• A value is generated by using the NEXTVAL pseudocolumn

• The CURRVAL pseudocolumn is NULL until a value is generated by NEXTVAL

• The USER_OBJECTS data dictionary object can be used to confirm the existence of all schema objects

• The USER_SEQUENCES data dictionary object is used to view sequence settings

Dr. Chen, Oracle Database System (Oracle) 57

Summary (continued)

• The ALTER SEQUENCE command is used to modify an existing sequence; the only settings that can’t be modified are the START

WITH option and any option that would be invalid because of previously generated values

• The DUAL table is helpful for testing sequence value generation

• The DROP SEQUENCE command deletes an existing sequence

• An index can be created to speed up the query process

• DML operations are always slower when indexes exist

• Oracle 11 g creates an index for PRIMARY KEY and UNIQUE constraints automatically

• An explicit index is created with the CREATE INDEX command

• An index can be used by Oracle 11 g automatically if a query criterion or sort operation is based on a column or an expression used to create the index

Dr. Chen, Oracle Database System (Oracle) 58

Summary (continued)

• The two main structures for indexes are B-tree and bitmap

• The explain plan can verify whether an index is used in a query

• Function-based indexes are used to index an expression or the use of functions on a column or columns

• An index organized table is a table stored in a B-tree structure to combine the index and table into one database object

• Information about an index can be retrieved from the

USER_INDEXES and USER_IND_COLUMNS views

• An index can be dropped with the DROP INDEX command

• An index can be renamed with the ALTER INDEX command

Dr. Chen, Oracle Database System (Oracle) 59

Summary (continued)

• Except for a name change, an index can’t be modified; it must be deleted and then re-created

• A synonym provides a permanent alias for a database object

• A public synonym is available to any database user

• A private synonym is available only to the user who created it

• A synonym is created by using the CREATE SYNONYM command

• A synonym is deleted by using the DROP SYNONYM command

• Only a user with DBA privileges can drop a public synonym

Dr. Chen, Oracle Database System (Oracle) 60

END OF CHAPTER 6

Dr. Chen, Oracle Database System (Oracle) 61

Download