Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

OracleDataAdapter.Fill () बहुत धीमा क्यों है?

इस कोड ने मेरी मदद की, इसे आजमाएं:

using (OracleConnection conn = new OracleConnection())
{
     OracleCommand comm = new OracleCommand();
     comm.Connection = conn;
     comm.FetchSize = comm.FetchSize * 16;
     comm.CommandText = "select * from some_table";

     try
     {
          conn.Open();
          OracleDataAdapter adap = new OracleDataAdapter(comm);
          System.Data.DataTable dt = new System.Data.DataTable();
          adap.Fill(dt);
     }
     finally
     {
          conn.Close();
     }
}

ट्रिक लाइन में है (अपने मामले के लिए सबसे अच्छा खोजने के लिए 8 से 64 के मान आज़माएं):

comm.FetchSize = comm.FetchSize * 16;

अद्यतन:

यहां एक बेहतर कोड दिया गया है:

OracleConnection myConnection = new OracleConnection(myConnectionString);
OracleCommand myCommand = new OracleCommand(mySelectQuery, myConnection);
myConnection.Open();
using (OracleDataReader reader = myCommand.ExecuteReader(CommandBehavior.CloseConnection))
{
    // here goes the trick
    // lets get 1000 rows on each round trip
    reader.FetchSize = reader.RowSize * 1000;

    while (reader.Read())
    {
        // reads the records normally
    }
}// close and dispose stuff here

यहां से



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-1114 रनिंग डाटापैच

  2. एसक्यूएल जॉइन कठिनाई - शामिल होने की स्थिति में पंक्तियों को सीमित करने का एक तरीका प्रतीत होता है

  3. एक ही संख्यात्मक डेटा प्रकार के लिए दो विदेशी कुंजियाँ और इसे दो तालिकाओं के लिए संदर्भित करें

  4. मुझे फ़ॉर्मेट के बाद NUMBER कॉलम में #### क्यों मिलता है?

  5. मैं ओरेकल व्यू के लिए अंतर्निहित कॉलम और टेबल नाम कैसे ढूंढ सकता हूं?