[gradebook2-dev] Gradebook2: Students' list takes a long time to load completly

RAUL SANCHEZ VEGAS raulsv at um.es
Tue Feb 5 01:39:27 PST 2013


Hi Thomas

I've created the Jira GRBK-1368 
<https://jira.sakaiproject.org/browse/GRBK-1368> related to this issue.

Regards,
Raúl


El 04/02/2013 18:33, Thomas Amsler escribió:
> Raúl,
>
> Can you please create a GRBK JIRA for this?
> https://jira.sakaiproject.org/browse/GRBK
>
> Thank you
>
> Best,
> -- Thomas
>
>
> On Mon, Feb 4, 2013 at 6:08 AM, RAUL SANCHEZ VEGAS <raulsv at um.es 
> <mailto:raulsv at um.es>> wrote:
>
>     Hi all
>
>     We are experimenting a problem with Gradebook2. When a site has
>     too many sections (i.e. 10 sections), the list of students takes
>     more than 3 or 4 minutes to load completly. When the instructor
>     changes to another page, it takes again more than 3 or 4 minutes
>     until the students list is displayed.
>
>     The reason is that Gradebook2 tries to load all students' scores
>     of all assignments using the following query.
>
>     */Class: GradebookToolServiceImpl.java, /**/
>     /**/method: /**/List<AssignmentGradeRecord>
>     getAllAssignmentGradeRecords(final Long gradebookId, final
>     String[] realmIds, final String[] roleNames)/*
>
>     /SELECT   assignment0_.ID AS ID1032_, //
>     //        assignment0_.VERSION AS VERSION1032_, //
>     //        assignment0_.GRADABLE_OBJECT_ID AS GRADABLE4_1032_, //
>     //        assignment0_.STUDENT_ID AS STUDENT5_1032_, //
>     //        assignment0_.GRADER_ID AS GRADER6_1032_, //
>     //        assignment0_.DATE_RECORDED AS DATE7_1032_, //
>     //        assignment0_.POINTS_EARNED AS POINTS8_1032_, //
>     //        assignment0_.IS_EXCLUDED_FROM_GRADE AS IS9_1032_ //
>     // FROM   GB_GRADE_RECORD_T assignment0_, //
>     //        GB_GRADABLE_OBJECT_T gradableob1_, //
>     //        SAKAI_REALM realm2_, //
>     //        SAKAI_REALM_RL_GR realmgroup3_, //
>     //        SAKAI_REALM_ROLE realmrole4_ //
>     //WHERE       assignment0_.OBJECT_TYPE_ID = 1 //
>     //        AND assignment0_.GRADABLE_OBJECT_ID = gradableob1_.ID //
>     //        AND assignment0_.STUDENT_ID = realmgroup3_.USER_ID //
>     //        AND realmgroup3_.ROLE_KEY = realmrole4_.ROLE_KEY //
>     //        AND realm2_.REALM_KEY = realmgroup3_.REALM_KEY //
>     //        AND gradableob1_.GRADEBOOK_ID = :1 //
>     //        AND (realm2_.REALM_ID IN (:2, :3, :4, :5, :6, :7, :8,
>     :9, :10, :11)) //
>     //        AND (gradableob1_.REMOVED = 0 OR gradableob1_.REMOVED IS
>     NULL) //
>     //        AND (realmrole4_.ROLE_NAME IN (:12)) //
>     /
>     This query takes a long time if there are too many sections. We
>     have investigated the way to reduce this time:
>
>     The query is searching for all users (in that particular site)
>     matching in rol and sections, and that also have assignments with
>     grades in gradebook2. We think that the query should be split into
>     2 queries:
>
>
>     First query
>
>     /SELECT REALMGROUP3_.USER_ID//
>     // FROM   SAKAI_REALM realm2_,//
>     //        SAKAI_REALM_RL_GR realmgroup3_,//
>     //        SAKAI_REALM_ROLE realmrole4_//
>     //WHERE   realmgroup3_.ROLE_KEY = realmrole4_.ROLE_KEY//
>     //        AND realm2_.REALM_KEY = realmgroup3_.REALM_KEY//
>     //        AND (realm2_.REALM_ID IN (//:2, :3, :4, :5, :6, :7, :8,
>     :9, :10, :11)//) //
>     //        AND (realmrole4_.ROLE_NAME IN (//:12//))/
>
>     Second query
>
>     /SELECT   assignment0_.ID AS ID1032_,//
>     //        assignment0_.VERSION AS VERSION1032_,//
>     //        assignment0_.GRADABLE_OBJECT_ID AS GRADABLE4_1032_,//
>     //        assignment0_.STUDENT_ID AS STUDENT5_1032_,//
>     //        assignment0_.GRADER_ID AS GRADER6_1032_,//
>     //        assignment0_.DATE_RECORDED AS DATE7_1032_,//
>     //        assignment0_.POINTS_EARNED AS POINTS8_1032_,//
>     //        assignment0_.IS_EXCLUDED_FROM_GRADE AS IS9_1032_//
>     // FROM   GB_GRADE_RECORD_T assignment0_,//
>     //        GB_GRADABLE_OBJECT_T gradableob1_//
>     //WHERE       assignment0_.OBJECT_TYPE_ID = 1//
>     //        AND assignment0_.GRADABLE_OBJECT_ID = gradableob1_.ID//
>     //        AND (gradableob1_.REMOVED = 0 OR gradableob1_.REMOVED IS
>     NULL)//
>     //        AND gradableob1_.GRADEBOOK_ID = //:1 //
>     //        AND assignment0_.STUDENT_ID IN//
>     //        (:2)/
>
>     The first query returns the list of the users (in that particular
>     site) matching in rol and sections. The second query returns all
>     scores of all assignments from the students obtained from the
>     first query. These 2 queries together take about 4 or 5 seconds.
>     The original query takes about 3 or 4 minutes.
>
>     Has anyone faced the same problem? Does anyone have other solutions?
>
>     Thanks,
>     Raúl
>
>     _______________________________________________
>     gradebook2-dev mailing list
>     gradebook2-dev at collab.sakaiproject.org
>     <mailto:gradebook2-dev at collab.sakaiproject.org>
>     http://collab.sakaiproject.org/mailman/listinfo/gradebook2-dev
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/gradebook2-dev/attachments/20130205/2cc29a96/attachment.html 


More information about the gradebook2-dev mailing list