Reason: 1. The order of resource access between transactions alternates, and two users access the table locked by the other party, resulting in a deadlock; 2. Two users concurrently modify the same record, resulting in a deadlock; 3 , a statement that does not meet the conditions is executed, and improper indexing causes a deadlock in the global scan.
The operating environment of this tutorial: Windows 10 system, Oracle 11g version, Dell G3 computer.
What is the cause of Oracle deadlock
The database is a shared resource used by multiple users. When multiple users access data concurrently, multiple transactions will occur in the database at the same time. access to the same data. If concurrent operations are not controlled, incorrect data may be read and stored, destroying the consistency of the database. Locking is a very important technology to achieve database concurrency control. Lock-related exceptions are often encountered in practical applications. When two transactions require a set of conflicting locks and the transaction cannot continue, a deadlock will occur, seriously affecting the normal execution of the application.
Lock type:
1. Shared locks (Share Locks, S lock): Data objects with shared locks can be read by other transactions, but cannot Revise. The database uses these two basic lock types to control the concurrency of database transactions.
2. Exclusive Locks (X lock): When a data object is locked with an exclusive lock, other transactions cannot read or modify it.
3. Exclusive lock: Based on the shared lock, it is upgraded to an exclusive lock.
4. Update lock: All users can read, but I may do update operations in the future. I have obtained the qualification from shared lock (used for reading) to exclusive lock (used for updating). Only one update lock per transaction can be eligible for this.
Cause of occurrence:
1. Alternation of resource access sequence between transactions: a user 1 accesses table A (locks table A), and then accesses again Table B; another user 2 accesses table B (locks table B), and then attempts to access table A; at this time, user 1 has to wait for user 2 to release table B because user 2 has locked table B before continuing. The same user 2 must wait for user 1 to release table A before continuing, and a deadlock occurs. Solution: Program logic problem, pay attention to the calling sequence of the table
2. Concurrently modify the same record: User 1 queries a record, and then modifies the record; then user 2 modifies the record, then user 1 The nature of the lock in the transaction is attempted to be increased from the shared lock of the query to an exclusive lock, and the exclusive lock in user 2 must wait for 1 to release the shared lock because 1 has a shared lock, while 1 cannot be increased due to 2's exclusive lock. Exclusive locks make it impossible to release shared locks, so a deadlock occurs:
3. Improper indexing leads to full table scan: the transaction executes a statement that does not meet the conditions, executes a full table scan, or the amount of table data is very large When too few or inappropriate large indexes are created
Solution: Do not use overly complex queries that relate multiple tables in SQL statements and build indexes for optimization
Note:
1. oracle View deadlocks and release deadlocks
select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid; alter system kill session '738,1429'; --释放资源
2. mysql View deadlocks and release deadlocks
show processlist --查看数据库中各个进程的运行状态 select * from information_schema.innodb_trx ---查询正在运行的事务 kill id
Recommended tutorial: "Oracle Video Tutorial"
The above is the detailed content of What is the cause of Oracle deadlock?. For more information, please follow other related articles on the PHP Chinese website!

Oracle software simplifies business processes through database management, ERP, CRM and data analysis capabilities. 1) OracleERPCloud automates financial, human resources and other processes; 2) OracleCXCloud manages customer interactions and provides personalized services; 3) OracleAnalyticsCloud supports data analysis and decision-making.

Oracle's software suite includes database management, ERP, CRM, etc., helps enterprises optimize operations, improve efficiency, and reduce costs. 1. OracleDatabase manages data, 2. OracleERPCloud handles finance, human resources and supply chain, 3. Use OracleSCMCloud to optimize supply chain management, 4. Ensure data flow and consistency through APIs and integration tools.

The main difference between MySQL and Oracle is licenses, features, and advantages. 1. License: MySQL provides a GPL license for free use, and Oracle adopts a proprietary license, which is expensive. 2. Function: MySQL has simple functions and is suitable for web applications and small and medium-sized enterprises. Oracle has powerful functions and is suitable for large-scale data and complex businesses. 3. Advantages: MySQL is open source free, suitable for startups, and Oracle is reliable in performance, suitable for large enterprises.

MySQL and Oracle have significant differences in performance, cost and usage scenarios. 1) Performance: Oracle performs better in complex queries and high concurrency environments. 2) Cost: MySQL is open source, low cost, suitable for small and medium-sized projects; Oracle is commercialized, high cost, suitable for large enterprises. 3) Usage scenarios: MySQL is suitable for web applications and small and medium-sized enterprises, and Oracle is suitable for complex enterprise-level applications. When choosing, you need to weigh the specific needs.

Oracle software can improve performance in a variety of ways. 1) Optimize SQL queries and reduce data transmission; 2) Appropriately manage indexes to balance query speed and maintenance costs; 3) Reasonably configure memory, optimize SGA and PGA; 4) Reduce I/O operations and use appropriate storage devices.

Oracle is so important in the enterprise software and cloud computing sectors because of its comprehensive solutions and strong technical support. 1) Oracle provides a wide range of product lines from database management to ERP, 2) its cloud computing services such as OracleCloudPlatform and Infrastructure help enterprises achieve digital transformation, 3) Oracle database stability and performance and seamless integration of cloud services improve enterprise efficiency.

MySQL and Oracle have their own advantages and disadvantages, and comprehensive considerations should be taken into account when choosing: 1. MySQL is suitable for lightweight and easy-to-use needs, suitable for web applications and small and medium-sized enterprises; 2. Oracle is suitable for powerful functions and high reliability needs, suitable for large enterprises and complex business systems.

MySQL uses GPL and commercial licenses for small and open source projects; Oracle uses commercial licenses for enterprises that require high performance. MySQL's GPL license is free, and commercial licenses require payment; Oracle license fees are calculated based on processors or users, and the cost is relatively high.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Chinese version
Chinese version, very easy to use

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver Mac version
Visual web development tools
