Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
955
WHDG performance is very slow
posted

Hello,

I am currently using  Version 19.1.20191.231. The dataset is returning just a little over 1,800 rows with 3 bands. I have paging turned on set at 10 rows per page. Expanding the child bands or changing pages takes at least 15 to 30 seconds or more no matter how many rows are in the child bands.

Also, when using the WebExcelExporter with this grid, I have to set the ExpandAll property to get export the entire grid with the DataExportMode set to 'AllDataInDataSouce' and that takes a about 5 minutes or more to complete. 

I would appreciate any help or tips on speeding this up.  

Markup below:

<asp:SqlDataSource ID="dsGridParent" runat="server" ConnectionString="<%$ ConnectionStrings:CHPCOMSDB %>" SelectCommand="usp_Examiner_Call_Routing_Parent" SelectCommandType="StoredProcedure">
                     <SelectParameters>
                         <asp:ControlParameter ControlID="dpBeginDate" DbType="Date" Name="Begin_Date" PropertyName="Value" />
                         <asp:ControlParameter ControlID="dpEnDate" DbType="Date" Name="End_Date" PropertyName="Value" />
                         <asp:ControlParameter ControlID="hdnExamninerID" DefaultValue="" Name="Examiner_ID" PropertyName="Value" Type="String" />
                         <asp:ControlParameter ControlID="hdnManagerID" Name="Manager_ID" PropertyName="Value" Type="String" />
                         <asp:ControlParameter ControlID="ckMyTeam" DefaultValue="" Name="Just_My_Team" PropertyName="Checked" Type="Boolean" />
                     </SelectParameters>
                 </asp:SqlDataSource>
                <asp:SqlDataSource ID="dsGridChild" runat="server" ConnectionString="<%$ ConnectionStrings:CHPCOMSDB %>" SelectCommand="usp_Examiner_Call_Routing_Child" SelectCommandType="StoredProcedure">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="dpBeginDate" DbType="Date" Name="Begin_Date" PropertyName="Value" />
                        <asp:ControlParameter ControlID="dpEnDate" DbType="Date" Name="End_Date" PropertyName="Value" />
                        <asp:ControlParameter ControlID="hdnExamninerID" Name="Examiner_ID" PropertyName="Value" Type="String" />
                        <asp:ControlParameter ControlID="hdnManagerID" Name="Manager_ID" PropertyName="Value" Type="String" />
                        <asp:ControlParameter ControlID="ckMyTeam" DefaultValue="" Name="Just_My_Team" PropertyName="Checked" Type="Boolean" />
                    </SelectParameters>
                 </asp:SqlDataSource>
                 <asp:SqlDataSource ID ="dsGridGrandChild" runat="server" ConnectionString="<%$ ConnectionStrings:CHPCOMSDB %>" SelectCommand="usp_Examiner_Call_Routing_GrandChild" SelectCommandType="StoredProcedure">
                     <SelectParameters>
                         <asp:ControlParameter ControlID="dpBeginDate" DbType="Date" Name="Begin_Date" PropertyName="Value" />
                         <asp:ControlParameter ControlID="dpEnDate" DbType="Date" Name="End_Date" PropertyName="Value" />
                         <asp:ControlParameter ControlID="hdnExamninerID" DefaultValue="" Name="Examiner_ID" PropertyName="Value" Type="String" />
                         <asp:ControlParameter ControlID="hdnManagerID" Name="Manager_ID" PropertyName="Value" Type="String" />
                         <asp:ControlParameter ControlID="ckMyTeam" DefaultValue="" Name="Just_My_Team" PropertyName="Checked" Type="Boolean" />
                     </SelectParameters>
                 </asp:SqlDataSource>
                <ig:WebHierarchicalDataSource ID="WebHierarchicalDataSource1" runat="server">
                    <DataViews>
                        <ig:DataView ID="dsGridParent_DefaultView" DataMember="DefaultView" DataSourceID="dsGridParent" />
                        <ig:DataView ID="dsGridChild_DefaultView" DataMember="DefaultView" DataSourceID="dsGridChild" />
                        <ig:DataView ID="dsGridGrandChild_DefaultView" DataMember="DefaultView" DataSourceID="dsGridGrandChild" />
                    </DataViews>
                    <DataRelations>
                        <ig:DataRelation ChildColumns="Examiner" ChildDataViewID="dsGridChild_DefaultView" ParentColumns="Examiner" ParentDataViewID="dsGridParent_DefaultView" />
                        <ig:DataRelation ChildColumns="Examiner,Call_Type" ChildDataViewID="dsGridGrandChild_DefaultView" ParentColumns="Examiner,Call_Type" ParentDataViewID="dsGridChild_DefaultView" />
                    </DataRelations>
                 </ig:WebHierarchicalDataSource>

<ig:WebHierarchicalDataGrid ID="WebHierarchicalDataGrid1" runat="server" Height="650px" Width="100%" AutoGenerateBands="False" AutoGenerateColumns="False" DataKeyFields="Examiner" DataMember="dsGridParent_DefaultView" DataSourceID="WebHierarchicalDataSource1" Key="dsGridParent_DefaultView" StyleSetName="RubberBlack">
                          <Bands>
                              <ig:Band AutoGenerateColumns="False" DataKeyFields="Examiner,Call_Type" DataMember="dsGridChild_DefaultView" Key="dsGridChild_DefaultView">
                                  <Bands>
                                      <ig:Band AutoGenerateColumns="False" DataMember="dsGridGrandChild_DefaultView" Key="dsGridGrandChild_DefaultView" DefaultColumnWidth="200px">
                                          <Columns>
                                              <ig:BoundDataField DataFieldName="Examiner" Hidden="True" Key="Examiner">
                                                  <Header Text="Examiner">
                                                  </Header>
                                              </ig:BoundDataField>
                                              <ig:BoundDataField DataFieldName="Call_Type" Hidden="True" Key="Call_Type">
                                                  <Header Text="Call_Type">
                                                  </Header>
                                              </ig:BoundDataField>
                                              <ig:BoundDataField DataFieldName="claimid" Key="claimid">
                                                  <Header Text="Claim ID">
                                                  </Header>
                                              </ig:BoundDataField>
                                              <ig:BoundDataField DataFieldName="Claim_Status" Key="Claim_Status">
                                                  <Header Text="Status">
                                                  </Header>
                                              </ig:BoundDataField>
                                              <ig:BoundDataField DataFieldName="Provider" Key="Provider">
                                                  <Header Text="Provider">
                                                  </Header>
                                              </ig:BoundDataField>
                                              <ig:BoundDataField DataFieldName="Date_Adjudicated" Key="Date_Adjudicated">
                                                  <Header Text="Date Adjudicated">
                                                  </Header>
                                              </ig:BoundDataField>
                                              <ig:BoundDataField DataFieldName="Ok_to_Pay_Date" Key="Ok_to_Pay_Date">
                                                  <Header Text="Ok Pay Date">
                                                  </Header>
                                              </ig:BoundDataField>
                                              <ig:BoundDataField DataFieldName="OK_to_Pay_By" Key="OK_to_Pay_By">
                                                  <Header Text="OK Pay By">
                                                  </Header>
                                              </ig:BoundDataField>
                                          </Columns>
                                          <Behaviors>
                                              <ig:Paging PageSize="10">
                                              </ig:Paging>
                                              <ig:RowSelectors RowNumbering="True">
                                              </ig:RowSelectors>
                                              <ig:ColumnResizing>
                                              </ig:ColumnResizing>
                                          </Behaviors>
                                      </ig:Band>
                                  </Bands>
                                  <Columns>
                                      <ig:BoundDataField DataFieldName="Examiner" Hidden="True" Key="Examiner">
                                          <Header Text="Examiner">
                                          </Header>
                                      </ig:BoundDataField>
                                      <ig:BoundDataField DataFieldName="Call_Type" Key="Call_Type">
                                          <Header Text="Call Type">
                                          </Header>
                                      </ig:BoundDataField>
                                      <ig:BoundDataField DataFieldName="No_of_Claims" Key="No_of_Claims" DataFormatString="{0:#,#0}">
                                          <Header Text="Claims">
                                          </Header>
                                      </ig:BoundDataField>
                                  </Columns>
                                  <Behaviors>
                                      <ig:ColumnResizing>
                                      </ig:ColumnResizing>
                                  </Behaviors>
                              </ig:Band>
                          </Bands>
                          <Columns>
                              <ig:BoundDataField DataFieldName="Examiner" Key="Examiner">
                                  <Header Text="Examiner">
                                  </Header>
                              </ig:BoundDataField>
                              <ig:BoundDataField DataFieldName="No_of_Claims" Key="No_of_Claims" DataFormatString="{0:#,#0}">
                                  <Header Text="Claims">
                                  </Header>
                              </ig:BoundDataField>
                          </Columns>
                          <Behaviors>
                              <ig:ColumnResizing>
                              </ig:ColumnResizing>
                          </Behaviors>
                      </ig:WebHierarchicalDataGrid>

   

Parents
  • 20255
    Offline posted

    Hello,

    Thank you for contacting us. May I ask you to send me the exact data that you are using, these are the steps to retrieve schema + data from database:

    1. Right click on the DataBase (testDb for example).
    2. Select "Tasks".
    3. Select "Generate Script".
    4. Click "Next" press radio button "Select specific database object"
    5. And Select two tables "RMADtl" and "CrdOrdCde".
    6. Click Next button and select "Advanced" button.
    7. From there find "Types of data to script" and change the value not to be "Schema only" but "Schema and data".
    8. Press "Ok" -> "Next" and "Finish".

    Performance depends on the type of data source that you are using. In your case with SqlDatSource sorting and other data operations are delegated to the data source, for in-memory arrays the grid will do the routine, which will be a little bit slower. I've done some tests with the WebHierarchicalDataGrid bound to a sql table with 1,000,000, using a page size of 50 records and 30 columns, and the performance was okay.

    I am a bit surprised that the load on expand time is up to 30 seconds, and this is why it would be highly appreciated if you could share a sample with me with the problem in order to reproduce it on my side.

    Looking forward to your reply.

Reply Children