Catalog writing speed issues

Comments

4 comments

  • Alex Ogourok
    Dear Alexey,

    Please share with us code listing which you use for upload.

    Some recommendation that you can use:

    1. Update 1C platform version to 8.3.13;
    2. Try to avoid text fields with unlimited length;
    3. Do upload in exclusive mode;
    4. Try to use transaction during upload;
    5. Switch off regisration in the exchange plan during save;
    5. Use SQL version of 1C platform.

    Kind regards,
    Alex
    0
    Comment actions Permalink
  • Alexey Gerasimov
    Quote
    Alex Ogourok wrote:
    1. Update 1C platform version to 8.3.13;
    Well, it is a universal suggestion, I still think of 8.3.13 as beta, but we could try.
    Quote
    2. Try to avoid text fields with unlimited length;
    No unlimited text fields were used, also we have tried to used only fixed length fields but no change in write time
    Quote
    3. Do upload in exclusive mode;
    Yes, active
    Quote
    4. Try to use transaction during upload;
    What is your suggestion? Count to 1000 and commit?
    Quote
    5. Switch off registration in the exchange plan during save;
    Switched off, also switched off full text search, data history, no additional indexes
    Quote
    5. Use SQL version of 1C platform.
    I thought about this one, but I can not explain why writing to one catalog only takes 1% of execution time and another one - 97%. I measured less than 20 writes per second on 3Ghz CPU and RAM-drive for the Infobase.
    0
    Comment actions Permalink
  • Alexey Gerasimov
    Quote
    Alex Ogourok wrote:
    Please share with us code listing which you use for upload.
    I don't have code with me right now, but it is basically like this:


    Code
    For Each Row In file Do
      Fields = GetFieldsFromRow(row);
      If Catalog1.Select(Fields.Code).IsEmpty() Then
        Obj1 = Catalog1.GetObject();
        ...
        Obj1.Write();
        
        Obj2 = Catalog2.GetObject();
        Obj2.Write();
      EndIf;
    EndDo;
    
    
    0
    Comment actions Permalink
  • Alex Ogourok
    Dear Alexey,

    It is not clear fr om this code example wh ere do you take reference to Catalog2.

    It would be good if you could send full code exerpt.

    You may try to use transactions by 1000 and commit.

    Also if these are 2 catalogs that are not linked to each other why not to try to save Catalog2 in a separate cycle?

    With SQL you could use profiler to understand the exact reason for slow performance.

    Kind regards,
    Alex
    0
    Comment actions Permalink

Please sign in to leave a comment.