This is a migrated thread and some comments may be shown as answers.

Telerik ORM really slow??

1 Answer 103 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Johannes
Top achievements
Rank 1
Johannes asked on 19 Mar 2013, 10:05 AM
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;
            }
        }      
    }
}



1 Answer, 1 is accepted

Sort by
0
PetarP
Telerik team
answered on 22 Mar 2013, 08:39 AM
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.
Tags
General Discussions
Asked by
Johannes
Top achievements
Rank 1
Answers by
PetarP
Telerik team
Share this question
or