Table Appointments have many rows... load is slow

4 posts, 0 answers
  1. Stim24
    Stim24 avatar
    6 posts
    Member since:
    Apr 2013

    Posted 27 Jan Link to this post

    I have Appointments table (name table is "Plan"). This table have are 83092 rows. (This data on 2015-2019 years)

    Next code working very slow(near 2 minutes).

    How can Scheduler get rows from DataSet, on selecting date in SchedulerNavigator?

     

    AppointmentMappingInfo planmapping = new AppointmentMappingInfo();
               this.schedulerBindingDataSource1.EventProvider.DataSource = this.planBindingSource;
               planmapping.Description = "Comment";
               planmapping.End = "DateEnd";
               planmapping.MasterEventId = "MasterEventID";
               planmapping.RecurrenceRule = "RecurrenceRule";
               planmapping.ResourceId = "id_PlanType";
               planmapping.Start = "Date";
               planmapping.Summary = "LastName";
               planmapping.UniqueId = "id";
               planmapping.FindBySchedulerProperty("ResourceId").ConvertToDataSource = ConvertResourceToDataSource;
               planmapping.FindBySchedulerProperty("ResourceId").ConvertToScheduler = ConvertResourceToScheduler;
               this.schedulerBindingDataSource1.EventProvider.Mapping = planmapping;
               ResourceMappingInfo plantypeMapping = new ResourceMappingInfo();
               plantypeMapping.Name = "Name";
               plantypeMapping.Id = "id";
               this.schedulerBindingDataSource1.ResourceProvider.DataSource = this.medClinicDataSet.PlanType;
               this.radScheduler1.DataSource = this.schedulerBindingDataSource1;
                
               this.planTableAdapter.Connection.ConnectionString = CData.Setting.SQLConnectString();
               this.planTypeTableAdapter.Connection.ConnectionString = CData.Setting.SQLConnectString();
     
               // TODO:"medClinicDataSet.PlanType".
               this.planTypeTableAdapter.Fill(this.medClinicDataSet.PlanType);
               // TODO:  "medClinicDataSet.Plan".
               this.planTableAdapter.Fill(this.medClinicDataSet.Plan);
                this.radScheduler1.GroupType = GroupType.Resource;
  2. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3451 posts

    Posted 28 Jan Link to this post

    Hello, Tim,      

    To be honest, 83092 records for appointments in RadScheduler is quite a lot. In addition, we already have a known issue regarding the performance when a lot of visual cell/appointment elements are displayed simultaneously. Here is the feedback item for your reference: https://feedback.telerik.com/winforms/1372972-fix-radscheduler-slow-performance-when-scrolling-in-timeline-view-with-many-visual-cells

    Is it possible to load the data on portions? In other words, extract only the records that are in the near future or past, several months forward and backward. Then, when the view is navigated close to the ranges of the already loaded data, you can extract the next relevant portion. Thus, you will obtain faster initial load time, but when you navigate to the next/previous view, extracting the next portion may require some time. As a whole, you will eliminate the initial loading of all the records which will make the scheduler slow. Is this approach suitable for your scenario? If it is not, it would be greatly appreciated if you can provide some more details about the whole scenario and goal that you are trying to achieve. Thank you in advance for your cooperation.

    I am looking forward to your reply. 

    Regards,
    Dess | Tech Support Engineer, Sr.
    Progress Telerik
    Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
  3. Jonathan
    Jonathan avatar
    7 posts
    Member since:
    Oct 2018

    Posted 30 Apr Link to this post

    I had the same issues.  My solution was to create a stored procedure to select only the appointments between the start date and end date of the current view, then manual fill the datatable bound to the scheduler.  Loads instantly, yet I can still navigate and see any and all my appointments throughout the many years.  I also pass the text from the search box into the stored procedure to get results matching that search, so it pulls the currently viewed dates as well as the results matching the search and loads them.  You can use a view changed event to trigger the reload, as well as a search completed event.
  4. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3451 posts

    Posted 01 May Link to this post

    Hello, Jonathan,     

    I am glad that you have found a suitable solution for your case. It sounds quite promising. 

    Make sure that you cast your vote for the previously referred feedback item. The more votes an item gathers, the higher its priority becomes. 

    You can track its progress, subscribe for status changes and add your comments on the item as well. Thus, you will get notified once any change occurs.

    Should you have further questions please let me know.
     
    Regards,
    Dess | Tech Support Engineer, Sr.
    Progress Telerik
    Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
Back to Top