Telerik ORM really slow??

2 posts, 0 answers
  1. Johannes
    Johannes avatar
    1 posts
    Member since:
    Nov 2012

    Posted 19 Mar 2013 Link to this post

    Hi folks,

    we bought the devtools from telerik a month ago. We developing a small wpf bussiness application. Right now we have some speed problems. So I set up a small test project containing:
    - Telerik ORM for the sql server connection (SQL Server 2008 R2 Express on a dedicated virtual machine having enought power)
    - A table having about 50 items (have a look at the table below)
    - A WPF View with code behind
    - 2 Elements on this View: a button and a TelerikDataGrid

    when I get the data from the Table for the first time, it needs about 1,5secounds (between Writline 3 and 4)...this is really much for "just" 50 elements (we think so). We tried lightspeed orm, which halfs the time, but has other problems that we don't have with the Telerik ORM.

    Please help us...

    Here's the code from the Button:
    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        Console.WriteLine(String.Format("{0:MM/dd/yyy hh:mm:ss.fff} || 1", DateTime.Now));
        ORMTest db = new ORMTest();
        Console.WriteLine(String.Format("{0:MM/dd/yyy hh:mm:ss.fff} || 2", DateTime.Now));
        B1.Content = "Button1"; //just for feedback on the view
        Console.WriteLine(String.Format("{0:MM/dd/yyy hh:mm:ss.fff} || 3", DateTime.Now));
        IQueryable<ORMTestProject.TblGeraete> i = db.TblGeraetes;
        Console.WriteLine(String.Format("{0:MM/dd/yyy hh:mm:ss.fff} || 4", DateTime.Now));
        Grid1.ItemsSource = i;
        Console.WriteLine(String.Format("{0:MM/dd/yyy hh:mm:ss.fff} || 5", DateTime.Now));
    }



    Here's the code from the Table:
    namespace ORMTestProject   
    {
        public partial class TblGeraete
        {
            private int? _auftragsNr;
            public virtual int? AuftragsNr
            {
                get
                {
                    return this._auftragsNr;
                }
                set
                {
                    this._auftragsNr = value;
                }
            }
             
            private int _auftragsSubNr;
            public virtual int AuftragsSubNr
            {
                get
                {
                    return this._auftragsSubNr;
                }
                set
                {
                    this._auftragsSubNr = value;
                }
            }
             
            private int _serienNr;
            public virtual int SerienNr
            {
                get
                {
                    return this._serienNr;
                }
                set
                {
                    this._serienNr = value;
                }
            }
             
            private int _sortierung;
            public virtual int Sortierung
            {
                get
                {
                    return this._sortierung;
                }
                set
                {
                    this._sortierung = value;
                }
            }
             
            private int _kundenNr;
            public virtual int KundenNr
            {
                get
                {
                    return this._kundenNr;
                }
                set
                {
                    this._kundenNr = value;
                }
            }
             
            private string _einsatzOrt;
            public virtual string EinsatzOrt
            {
                get
                {
                    return this._einsatzOrt;
                }
                set
                {
                    this._einsatzOrt = value;
                }
            }
             
            private DateTime? _datum;
            public virtual DateTime? Datum
            {
                get
                {
                    return this._datum;
                }
                set
                {
                    this._datum = value;
                }
            }
             
            private string _geraeteTyp;
            public virtual string GeraeteTyp
            {
                get
                {
                    return this._geraeteTyp;
                }
                set
                {
                    this._geraeteTyp = value;
                }
            }
             
            private string _lieferschein;
            public virtual string Lieferschein
            {
                get
                {
                    return this._lieferschein;
                }
                set
                {
                    this._lieferschein = value;
                }
            }
             
            private string _vorherigerEinsatz;
            public virtual string VorherigerEinsatz
            {
                get
                {
                    return this._vorherigerEinsatz;
                }
                set
                {
                    this._vorherigerEinsatz = value;
                }
            }
             
            private string _verwendung;
            public virtual string Verwendung
            {
                get
                {
                    return this._verwendung;
                }
                set
                {
                    this._verwendung = value;
                }
            }
             
            private DateTime _timestamp;
            public virtual DateTime Timestamp
            {
                get
                {
                    return this._timestamp;
                }
                set
                {
                    this._timestamp = value;
                }
            }
             
            private string _beschreibung;
            public virtual string Beschreibung
            {
                get
                {
                    return this._beschreibung;
                }
                set
                {
                    this._beschreibung = value;
                }
            }
             
            private string _aNROld;
            public virtual string ANROld
            {
                get
                {
                    return this._aNROld;
                }
                set
                {
                    this._aNROld = value;
                }
            }      
        }
    }



  2. PetarP
    Admin
    PetarP avatar
    754 posts

    Posted 22 Mar 2013 Link to this post

    Hi Johannes,

     The first initialization of a context and the first query are known to be a little more time consuming than all the rest (note that the size of the result here will not increase the initial delay further).  This is caused due to the initialization of our complete stack during the first call (caches, database objects etc). I am afraid that there is no workaround I can suggestion but rather just do a single "warm up" call after you have initialized your context.

    Regards,
    Petar
    the Telerik team
    Free Webinar: OpenAccess Integration in Sitefinity. SIGN UP NOW.
  3. DevCraft banner
Back to Top