In Oracle, you can use the "alter system set "_optimizer_connect_by_cost_based" = false scope=both;" statement to solve the exception of being unable to read more data from the socket. This statement changes the value of "_optimizer_connect_by_cost_based" Set to both, the modification will take effect currently and will also take effect next time the database is restarted.
The operating environment of this tutorial: Windows 10 system, Oracle version 12c, Dell G3 computer.
Problem phenomenon:
The following error appears in the log:
If you encounter this problem, you can check the oracle log and analyze the cause of the problem.
The most commonly used problem locating log of Oracle database is the alert log. The log file of Oracle database alert_$ORACLE_SID.log records the conversion of redo log, database startup and shutdown, changes in database structure, and rollback segments. Modification, deadlock, internal error and other information.
The path is: ORACLE_BASE/admin/ORACLE_SID/bdump/alert_ORACLE_SID.log
The log file of the new Oracle database is under ORACLE_BASE/diag/rdbms, such as: D:appAdministratordiag dbmsorclorcl race
You can also find the location through sql statements:
Alert log XML file location: select value from v$diag_info where name ='Diag Alert';
Alert log text file location: select value from v$diag_info where name ='Diag Trace';
Solution:
alter system set "_optimizer_connect_by_cost_based" = false scope=both ;
Reference details
_optimizer_connect_by_cost_based is used to connect using cost-based conversion. The default is true. Scope is the scope of the SQL modified by this parameter. There are three values in total: both, memory, and spfile.
1. Scope=memory will take effect after being modified, but restarting the database will not work
2. Scope=spfile will not take effect after being modified, and it will take effect next time the database is restarted
3. Scope=both currently works after modification, and will also work next time the database is restarted
Recommended tutorial: "Oracle Video Tutorial"
The above is the detailed content of What should I do if Oracle cannot read more data from the socket?. For more information, please follow other related articles on the PHP Chinese website!