Hallo,
ich habe eine Frage zum Thema c# und Commit-Methode beim Zugriff auf Oracle-Datenbanken.
Allgemeines:
Ich habe ein Tool mit C# geschrieben um auf einer Oracle-Datenbank Daten zu verändern: Insert; Update; Delete.
Mein Kollege hat bemängelt, dass die UNDO Tablespace sich stark vergrößern wenn mein Tool Daten aus der Datenbank löscht.
Ich habe eine Änderung durchgeführt und wollte einfach mal Rückmeldungen einholen. Danke in Vorraus!
Frage-1:
Wird beim verwenden der "ExecuteNonQuery() Methode" ein Commit auf der Datenbank durchgeführt oder nicht?
Frage-2:
Kann ich beim Verwenden der "OracleTransaction Methode" erst nach jedem z.B. 5-ten Lauf transaction.Commit() absetzen?
Mir ist an dieser Stelle der Syntax nicht klar!
Syntax alt:
[highlight=c#]
OracleCommand delCmd;
try
{
delCmd = conn.CreateCommand();
// SQL for delete
delCmd.CommandText = cmdSQL_delete_table;
delCmd.ExecuteNonQuery();
}
[/highlight]
Syntax neu:
[highlight=c#]
OracleCommand delCmd;
OracleTransaction transaction=null;
try
{
delCmd = conn.CreateCommand();
// Start a local transaction
transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted );
// Assign transaction object for a pending local transaction
delCmd.Transaction = transaction;
// SQL for delete
delCmd.CommandText = cmdSQL_delete_table;
delCmd.ExecuteNonQuery();
// Commit Transaktion
transaction.Commit();
}
[/highlight]
ich habe eine Frage zum Thema c# und Commit-Methode beim Zugriff auf Oracle-Datenbanken.
Allgemeines:
Ich habe ein Tool mit C# geschrieben um auf einer Oracle-Datenbank Daten zu verändern: Insert; Update; Delete.
Mein Kollege hat bemängelt, dass die UNDO Tablespace sich stark vergrößern wenn mein Tool Daten aus der Datenbank löscht.
Ich habe eine Änderung durchgeführt und wollte einfach mal Rückmeldungen einholen. Danke in Vorraus!
Frage-1:
Wird beim verwenden der "ExecuteNonQuery() Methode" ein Commit auf der Datenbank durchgeführt oder nicht?
Frage-2:
Kann ich beim Verwenden der "OracleTransaction Methode" erst nach jedem z.B. 5-ten Lauf transaction.Commit() absetzen?
Mir ist an dieser Stelle der Syntax nicht klar!
Syntax alt:
[highlight=c#]
OracleCommand delCmd;
try
{
delCmd = conn.CreateCommand();
// SQL for delete
delCmd.CommandText = cmdSQL_delete_table;
delCmd.ExecuteNonQuery();
}
[/highlight]
Syntax neu:
[highlight=c#]
OracleCommand delCmd;
OracleTransaction transaction=null;
try
{
delCmd = conn.CreateCommand();
// Start a local transaction
transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted );
// Assign transaction object for a pending local transaction
delCmd.Transaction = transaction;
// SQL for delete
delCmd.CommandText = cmdSQL_delete_table;
delCmd.ExecuteNonQuery();
// Commit Transaktion
transaction.Commit();
}
[/highlight]
Comment