Oracle Interview Questions


What is Oracle Database?

Oracle Database is a relational database management system (RDBMS) developed by Oracle Corporation. It is designed to store and retrieve large amounts of data and supports a variety of data models, including relational, XML, and more.

What are the key features of the Oracle Database?

Oracle Database some Key features are:

Scalability and Performance

  • Real Application Clusters (RAC): Scalability and high availability by allowing multiple instances to access one database.
  • Partitioning: Improves performance by dividing large tables.
  • Advanced Indexing: Optimizes queries with various indexing methods.

Data Security

  • User Authentication: Multiple robust methods including passwords and digital certificates.
  • Data Encryption: Protects data at rest and in transit.
  • Fine-Grained Access Control: Granular data access with Virtual Private Database (VPD).
  • Auditing: Tracks database activities for compliance.

High Availability

  • Oracle Data Guard: Disaster recovery and data protection.
  • Oracle GoldenGate: Real-time data integration and replication.
  • Flashback Technology: Restores data to previous states without full backups.

Backup and Recovery

  • Recovery Manager (RMAN): Comprehensive backup and recovery tools.
  • Data Pump: Fast data export/import utilities.

Manageability

  • Automatic Storage Management (ASM): Simplifies storage management.
  • Enterprise Manager: Web-based database administration tool.
  • Self-Managing Database: Includes tools for performance diagnostics and tuning.

Data Warehousing and Business Intelligence

  • Oracle OLAP: Advanced analytical processing.
  • Materialized Views: Stores query results to improve performance.
  • Analytical Functions: Advanced data analysis capabilities.

Advanced SQL and PL/SQL Support

  • Rich SQL and PL/SQL: Supports complex queries and procedural language for stored procedures.
  • Advanced Query Optimization: Cost-based optimizer for efficient execution plans.

Multitenant Architecture

  • Pluggable Databases (PDBs): Multiple databases in one instance for better resource utilization.

Internet-Scale Applications

  • Oracle APEX: Low-code platform for web applications.
  • Oracle REST Data Services (ORDS): RESTful web services for database access.

Support for Various Data Types

  • Structured and Unstructured Data: Handles relational, JSON, XML, spatial, and multimedia data.
  • Big Data Integration: Integrates with technologies like Hadoop and NoSQL.

What is an Oracle schema?

A schema is a collection of database objects, including tables, views, indexes, and synonyms, owned by a specific user. Each user in Oracle has their schema, and the objects are stored within this schema.

What is a tablespace in Oracle?

A tablespace is a logical storage unit within an Oracle database. It groups related logical structures, such as tables and indexes. Tablespaces can be managed either manually or automatically.

What is a cursor in PL/SQL?

A cursor is a pointer that allows you to fetch and manipulate data row by row from a result set. There are two types of cursors in PL/SQL: explicit cursors and implicit cursors.

DECLARE
    CURSOR emp_cursor IS
        SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 10;
    v_employee_id employees.employee_id%TYPE;
    v_first_name employees.first_name%TYPE;
    v_last_name employees.last_name%TYPE;
BEGIN
    OPEN emp_cursor;
    LOOP
        FETCH emp_cursor INTO v_employee_id, v_first_name, v_last_name;
        EXIT WHEN emp_cursor%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE('Employee ID: ' || v_employee_id || ', Name: ' || v_first_name || ' ' || v_last_name);
    END LOOP;
    CLOSE emp_cursor;
END;

Explain the difference between DELETE and TRUNCATE.

The DELETE and TRUNCATE statements in SQL are used to remove data from a table, but they have significant differences in how they operate and their implications.

Feature DELETE TRUNCATE
Purpose Removes specific rows or all rows from a table. Removes all rows from a table.
Syntax DELETE FROM table_name [WHERE condition]; TRUNCATE TABLE table_name;
Conditional Can delete specific rows using WHERE clause. Deletes all rows, no WHERE clause allowed.
Transaction Control Generates individual delete entries in the transaction log. Each delete operation can be rolled back if not committed. Doesn't generate individual delete entries in the transaction log. The operation is not logged, so it cannot be rolled back.
Triggers Activates DELETE triggers defined on the table. Does not activate DELETE triggers.
Performance Generally slower, especially for large datasets. Generally faster, especially for large datasets.
Space Management Does not free up space immediately; marks space as available for reuse. Releases space immediately, resulting in faster performance.
Usage Example DELETE FROM employees WHERE department_id = 10; TRUNCATE TABLE employees;
-- DELETE Example
DELETE FROM employees WHERE department_id = 10;
COMMIT;

-- TRUNCATE Example
TRUNCATE TABLE employees;

What is a JOIN in SQL?

A JOIN clause is used to combine rows from two or more tables based on a related column between them. Types of joins include INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL OUTER JOIN.

What is a trigger in Oracle?

A trigger is a stored PL/SQL block that automatically executes in response to certain events on a particular table or view, such as INSERT, UPDATE, or DELETE operations.

Explain the use of the NVL function.

NVL is used to substitute a value when a null value is encountered. For example, 'NVL(salary, 0)' returns 0 if the salary is null.

SELECT employee_id, salary, NVL(commission_pct, 0) AS commission
FROM employees;

What is an index in Oracle?

An index is a database object that improves the speed of data retrieval operations on a table. It is created on one or more columns of a table.

Describe partitioning and its benefits.

Partitioning in Oracle involves dividing large tables and indexes into smaller partitions based on a defined criteria. Here are some key benefits:

  • Improved Performance: Partition pruning reduces I/O by scanning only relevant partitions, enhancing query performance. Parallel processing is more efficient, and indexes on partitioned tables are smaller and more effective.
  • Enhanced Manageability: Facilitates easier data management, backup, recovery, and maintenance tasks. Partition-level operations can be performed without impacting the entire table.
  • Increased Availability: Supports high availability solutions such as rolling upgrades and disaster recovery at the partition level, minimizing downtime.
  • Data Segregation: Logically segregates data based on business requirements, facilitating better organization and access control.
  • Scalability: Distributes data across multiple storage devices, supporting efficient resource utilization and seamless data growth.
  • Cost Savings: Optimizes performance and resource utilization, potentially leading to savings in hardware, maintenance, and operational costs.

What are Oracle sequences?

Sequences are database objects that generate unique numbers, often used for primary key values. They are highly flexible and can be customized to meet specific requirements.

CREATE SEQUENCE emp_seq
START WITH 1
INCREMENT BY 1
NOCACHE;

-- Using the sequence
INSERT INTO employees (employee_id, first_name, last_name, hire_date, job_id)
VALUES (emp_seq.NEXTVAL, 'John', 'Doe', SYSDATE, 'IT_PROG');

What are execution plans and how do you generate them?

Execution plans show the steps Oracle takes to execute a SQL query. They can be generated using the 'EXPLAIN PLAN' statement or by querying dynamic performance views.

What is the difference between a hot backup and a cold backup?

The difference between a hot backup and a cold backup lies in whether the database is actively running or shut down during the backup process. Some key differences are:

Feature Hot Backup Cold Backup
Definition Taken while the database is actively running Taken while the database is shut down
Backup Process Database remains open and accessible to users Database is closed and inaccessible to users
Consistency Backup is consistent up to the start of the backup process Backup captures a consistent snapshot at the moment of shutdown
Backup Method Utilizes database features like RMAN or export/import utilities Involves directly copying database files from disk
Transaction Processing Continues during backup process Suspended during backup process
User Downtime Minimal downtime for users Requires downtime for users
Benefits Allows continuous database availability with minimal disruption Provides a clean and consistent backup, ensuring data integrity

Explain Oracle Data Guard.

Oracle Data Guard is a high availability and disaster recovery solution for Oracle databases. It maintains synchronized standby databases to ensure continuous availability and data protection. It offers flexible configuration options and supports various modes of operation to meet different business needs. With Data Guard, organizations can quickly recover from failures and ensure data integrity.

What is SQL tuning and why is it important?

SQL tuning involves optimizing SQL queries to improve performance. It is important because it ensures efficient use of resources and reduces query execution time.

What is a materialized view?

A materialized view is a database object that stores the result of a query physically. It can be refreshed periodically and is used to improve query performance.

CREATE MATERIALIZED VIEW emp_dept_mv
REFRESH COMPLETE
START WITH SYSDATE
NEXT SYSDATE + 1
AS
SELECT e.employee_id, e.first_name, e.last_name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;

Explain the concept of table partitioning.

Table partitioning involves dividing a large table into smaller, more manageable segments (partitions) based on a specified column. This improves performance and manageability.

What are the common causes of poor database performance?

Common causes include inefficient SQL queries, inadequate indexing, excessive locking and contention, hardware limitations, and improper configuration of database parameters.

What is RMAN?

RMAN (Recovery Manager) is an Oracle utility that provides a comprehensive framework for backing up, restoring, and recovering Oracle databases.

rman target /

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

What are Oracle's Analytical Functions?

Oracle's Analytical Functions are SQL functions used for advanced data analysis and reporting within Oracle Database. They include aggregate functions like SUM and AVG, as well as ranking functions like ROW_NUMBER and RANK. These functions allow for partitioning, ordering, and aggregating data to derive insights and make informed decisions based on the data. They are commonly used for tasks such as sales analysis, financial reporting, and inventory management.

What is a control file in Oracle?

In Oracle Database, the control file is a crucial binary file storing metadata about the database's structure and status. It includes details like datafile locations, database name, and checkpoint information. This file is essential for database startup, recovery, and ensuring data integrity. Redundant copies are maintained for fault tolerance.

Explain the difference between a full backup and an incremental backup.

The difference between a full backup and an incremental backup lies in the amount of data they capture and the frequency at which they are performed.

Feature Full Backup Incremental Backup
Definition Captures the entire database or specified subset of data at a specific point in time Captures only the data that has changed since the last backup
Backup Content Includes all data and database objects regardless of changes Includes only changed or added data blocks since the last backup
Frequency Less frequent due to time and resource requirements More frequent since it captures only changes, reducing backup time and resource usage
Usage Used as a baseline backup or regular backup strategy for complete data recovery Used to supplement full backups by capturing changes between full backups
Recovery Provides a standalone backup for complete data recovery Requires both full backup and subsequent incremental backups for recovery

What are redo log files?

Redo log files in Oracle Database are records of all changes made to data, ensuring data integrity and facilitating database recovery. They store transactional history and play a vital role in instance and media recovery. Redo log files are crucial for maintaining database reliability and performance.

Describe the steps for performing a database recovery.

Performing a database recovery involves restoring the database to a consistent state after a failure or data loss event. Here's a brief overview of the steps involved:

  • Identify Cause: Determine the reason for the failure.
  • Assess Damage: Evaluate the extent of data loss or corruption.
  • Choose Method: Decide between instance or media recovery.
  • Restore Datafiles: If needed, restore affected datafiles from backup.
  • Apply Redo Logs: Roll forward changes using redo log files.
  • Complete Recovery: Roll back uncommitted transactions if necessary.
  • Perform Open Resetlogs: If required, open the database with new log sequence numbers.
  • Verify Integrity: Ensure database integrity through consistency checks.

What is Oracle's role-based security model?

Oracle's role-based security model uses roles to grant and manage access permissions for users, simplifying the administration of user privileges.

How do you create a user in Oracle?

A user is created using the 'CREATE USER' statement followed by setting up authentication, such as:

CREATE USER new_user IDENTIFIED BY password;

GRANT CONNECT, RESOURCE TO new_user;

What is the principle of least privilege?

This principle involves granting users the minimum level of access—or permissions—needed to perform their job functions.

Explain auditing in Oracle.

Auditing in Oracle involves tracking and recording database activities for security, compliance, and accountability purposes. It includes defining audit policies, recording audited activities in audit trails, and managing audit options. Auditing helps enforce security policies, detect unauthorized access, and ensure compliance with regulatory requirements.

What are profiles in Oracle?

Profiles define a set of resource limits for database users, such as CPU time, number of concurrent sessions, and password management policies.

CREATE PROFILE developer_profile LIMIT
SESSIONS_PER_USER 5
CPU_PER_SESSION 10000
CPU_PER_CALL 1000
CONNECT_TIME 60
IDLE_TIME 30
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 30;

ALTER USER new_user PROFILE developer_profile;

What is Oracle ASM?

Automatic Storage Management (ASM) is a feature that provides an abstraction layer for managing disk groups, simplifying database storage management and improving performance.

What is the Oracle Data Pump?

Oracle Data Pump is a utility for fast data and metadata movement between Oracle databases. It includes 'expdp' (export) and 'impdp' (import) utilities.

Explain the difference between Oracle SID and Oracle Service Name.

The Oracle System Identifier (SID) and Oracle Service Name are both identifiers used to connect to an Oracle database, but they serve different purposes.

Feature Oracle SID Oracle Service Name
Definition Unique name identifying a specific instance of an Oracle database on a server Global name given to a database service, which may include multiple database instances
Usage Used by the Oracle instance to identify itself to the operating system and other Oracle instances Used by clients to connect to a specific database service rather than a particular database instance
Connection Format includes the hostname or IP address of the server and the SID Format includes the hostname or IP address of the server, the listener port number, and the service name
Example sqlplus username/password@hostname/SID sqlplus username/password@//hostname:port/service_name
# Setting environment variables for SID and Service Name
export ORACLE_SID=orcl
export ORACLE_SERVICE_NAME=orcl_service

What is the Oracle Grid Infrastructure?

Oracle Grid Infrastructure is a software suite designed to manage clustered database environments, providing high availability and scalability through its clusterware and Automatic Storage Management (ASM) components.

  • Clusterware: Manages cluster membership, node communication, and resource coordination across multiple servers in the cluster. It ensures high availability features such as automatic failover and service relocation.
  • Oracle ASM (Automatic Storage Management): Simplifies storage management by abstracting physical storage devices into logical storage units called disk groups. It handles disk redundancy, rebalancing, and performance optimization for database files.

What are Oracle Hints?

Oracle hints are annotations embedded within SQL queries to provide directives to the Oracle optimizer, guiding its decision-making process in choosing the most efficient execution plan.

  • Hints in SQL Queries: Hints are specified as comments within SQL statements, influencing the behavior of the optimizer.
  • Optimization Control: Hints allow developers and administrators to control aspects of query optimization, such as the choice of access path, join order, and parallel execution.
  • Types of Hints: Oracle hints come in various types, including optimizer mode hints, access path hints, join order hints, and parallel hints, each serving specific optimization purposes.

What is Oracle RAC?

Oracle Real Application Clusters (RAC) allows multiple instances to access a single database, providing high availability, scalability, and redundancy.

$GRID_HOME/addnode/addnode.sh -silent -noCopy CLUSTER_NEW_NODES={new_node}

How does Oracle RAC work?

Oracle RAC uses a shared disk architecture, where each instance has its own memory structures and processes but accesses the same physical database files.

What are the benefits of using Oracle RAC?

Oracle Real Application Clusters (RAC) is a database clustering technology that allows multiple instances to access a single Oracle database simultaneously. Here are some benefits of using Oracle RAC:

  • High Availability: Ensures continuous availability by allowing failover to other nodes without downtime.
  • Scalability: Dynamically scales database resources up or down to meet changing workload demands.
  • Fault Tolerance: Maintains data integrity and business continuity even during node failures.
  • Load Balancing: Distributes workload evenly across nodes for optimal performance.
  • Resource Sharing: Optimizes resource utilization by sharing common resources among instances.
  • Online Maintenance: Supports non-disruptive maintenance operations for continuous service availability.
  • Parallel Processing: Enables parallel query processing for improved performance.
  • Geographic Redundancy: Facilitates deployment across multiple data centers for disaster recovery.

What is cache fusion in Oracle RAC?

Cache Fusion is a mechanism in Oracle RAC that allows the sharing of data blocks across instances, ensuring data consistency and coherence in the cache memory.

How do you add a node to an Oracle RAC cluster?

Adding a node involves configuring the hardware, installing the necessary software, and using Oracle's cluster management tools to integrate the new node into the RAC environment.

What is Oracle OLAP?

Oracle OLAP (Online Analytical Processing) is a feature in Oracle Database for advanced multidimensional data analysis. It organizes data into cubes and dimensions, enabling efficient aggregation, calculation, and analysis across multiple dimensions. With integration with BI tools, it supports various use cases such as financial analysis, sales, and marketing analysis, supply chain optimization, and risk management.

What is an Oracle data warehouse?

An Oracle data warehouse is a central repository of integrated data from one or more disparate sources, used for reporting and data analysis.

CREATE TABLE sales_fact (
    sale_id NUMBER PRIMARY KEY,
    product_id NUMBER,
    customer_id NUMBER,
    sale_date DATE,
    amount NUMBER
);

CREATE TABLE product_dim (
    product_id NUMBER PRIMARY KEY,
    product_name VARCHAR2(50),
    category VARCHAR2(50)
);

CREATE TABLE customer_dim (
    customer_id NUMBER PRIMARY KEY,
    customer_name VARCHAR2(50),
    region VARCHAR2(50)
);

-- Example query using the star schema
SELECT p.product_name, c.customer_name, SUM(s.amount) AS total_sales
FROM sales_fact s
JOIN product_dim p ON s.product_id = p.product_id
JOIN customer_dim c ON s.customer_id = c.customer_id
GROUP BY p.product_name, c.customer_name;

What is Oracle Exadata?

Oracle Exadata is an engineered system designed for running Oracle Database, providing optimized performance, scalability, and availability for data warehousing and transaction processing.

Explain the concept of a star schema in data warehousing.

A star schema is a data warehouse schema that organizes data into fact tables and dimension tables. Fact tables store quantitative data, while dimension tables store descriptive attributes related to the facts.

Explain the use of AWR in Oracle.

The Automatic Workload Repository (AWR) in Oracle Database is a feature for performance monitoring and diagnostics. It collects and stores performance data at regular intervals, allowing administrators to analyze trends, troubleshoot issues, and optimize performance. AWR snapshots capture system metrics, SQL statements, wait events, and resource usage, providing insights into database performance over time. It's a valuable tool for performance analysis, troubleshooting, capacity planning, and performance tuning.

How do you diagnose a slow-running query?

Diagnose by examining the execution plan, checking for missing indexes, analyzing table statistics, and looking for resource contention or system bottlenecks.

What is Oracle SQL*Loader?

SQL*Loader is a utility that loads data from external files into Oracle database tables, offering various data loading methods and transformation capabilities.

LOAD DATA
INFILE 'data.csv'
INTO TABLE employees
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
    employee_id,
    first_name,
    last_name,
    hire_date DATE "YYYY-MM-DD",
    job_id
)

# Command to run SQL*Loader
sqlldr userid=username/password control=control_file.ctl

What are Oracle Wait Events?

Wait events are conditions that cause database processes to wait. Monitoring these events helps identify performance bottlenecks and resource contention issues.

How do you handle an ORA-01555 error?

The ORA-01555 error, "snapshot too old," occurs when a query cannot access the necessary undo data. Solutions include increasing the undo tablespace size, optimizing long-running queries, and ensuring proper undo retention settings.