How to increase the speed of writing clob data to a file

We extract data from the oracle database to a file using C # oracleDataReader, we use several streams, and I found that reading data other than clob is very fast, say, 4 minutes per 1 GB. But when the data contains clob, it is very very slow, even data in a 12 MB block takes about 3 hours.

I tried to increase the buffer from 64 KB to 5 MB.

Please suggest how to increase the speed of writing a clob file to a file.

Source

we use 2 files 1 for actual csv and 1 for clob. we write recordpointer instead of clob in the csv file and in the clob file write the value of recordpointer, clob.

else if (objVal is OracleClob)
{
    OracleClob oraVal = (OracleClob)objVal;
    if (oraVal.IsEmpty) 
        sw.Write("");
    else
    {
        //    using (StreamWriter writer = new StreamWriter(fileName, true))
        {
            Interlocked.Increment(ref recordPointer);
            if (recordPointer == 1)
            {
                string fileName = outputFileName.Remove(outputFileName.LastIndexOf("."));
                fileName = fileName + ".clobcsv";
                clobWriter = new StreamWriter(fileName, true);
                log.Info("CLOB data is found in this file " + outputFileName + " and clob data is stored in " + fileName + " file");
                clobWriter.WriteLine("Id," + cols[i]);
            }
            StringBuilder sb = new StringBuilder("\"");
            StringBuilder value = new StringBuilder();
            value.Append(oraVal.Value);
            //CsvEscape(value.ToString());
            value.Replace("\"", "\"\"");

            sb.Append(recordPointer);
            sb.Append("\"");
            sb.Append(delimiter);
            sb.Append("\"");
            //sb.Append(oraVal.Value.Replace("\"", "\"\""));
            sb.Append(value);
            value.Clear();
            sb.Append("\"");

            clobWriter.WriteLine(sb);
            //clobWriter.WriteLine("\"" + recordPointer + "\"" + delimiter + "\"" + oraVal.Value.Replace("\"", "\"\"") + "\"");                                    
        }
        sw.Write(recordPointer);
    }
}
+3
source share
2 answers

, Oracle . IO, , , , , . , dbms_xslprocessor.clob2file 12 CLOB 16 . .

0

All Articles