2016-04-14 22 views
0

これは何時間も作業しています。 vb.netのデータセットに対して複数のテーブル(約42テーブル)を組み合わせようとしましたが、クエリは応答せずタイムアウトします。LEFT JOINは応答しません

SELECT  accounts.`1st_test` AS acc1, accounts.`2nd_test` AS acc2, accounts.exam AS accExam, accounts.result_total AS accTotal, accounts.result_grade AS accGrade, agricultural_science.`1st_test` AS agric1, 
        agricultural_science.`2nd_test` AS agric2, agricultural_science.exam AS agricExam3, agricultural_science.result_total AS agricTotal, agricultural_science.result_grade AS agricGrade, 
        animal_husbandry.`1st_test` AS ani1, animal_husbandry.`2nd_test` AS ani2, animal_husbandry.exam AS aniExam, animal_husbandry.result_total AS aniTotal, animal_husbandry.result_grade AS aniGrade, 
        basic_science.`1st_test` AS basicsci1, basic_science.`2nd_test` AS basicsci2, basic_science.exam AS basicsciExam, basic_science.result_total AS basicsciTotal, basic_science.result_grade AS basicsciGrade, 
        basic_science_technology.`1st_test` AS basicscitech1, basic_science_technology.`2nd_test` AS basicscitech2, basic_science_technology.exam AS basicscitechExam, 
        basic_science_technology.result_total AS basicscitechTotal, basic_science_technology.result_grade AS basicscitechGrade, basic_technology.`1st_test` AS basictech1, basic_technology.`2nd_test` AS basictech2, 
         basic_technology.exam AS basictechExam, basic_technology.result_total AS basictechTotal, basic_technology.result_grade AS basictechGrade, biology.result_grade AS bioGrade, biology.result_total AS bioTotal, 
         biology.exam AS bioExam, biology.`2nd_test` AS bio2, biology.`1st_test` AS bio1, business_studies.result_grade AS busGrade, business_studies.result_total AS busTotal, business_studies.exam AS busExam, 
        business_studies.`2nd_test` AS bus2, business_studies.`1st_test` AS bus1, chemistry.result_grade AS chemGrade, chemistry.result_total AS chemTotal, chemistry.exam AS chemExam, 
        chemistry.`2nd_test` AS chem2, chemistry.`1st_test` AS chem1, commerce.result_total AS commTotal, commerce.exam AS commExam, commerce.`2nd_test` AS comm2, commerce.`1st_test` AS comm1, 
        commerce.result_grade AS commGrade, civic_education.result_grade AS civicGrade, civic_education.result_total AS civicTotal, civic_education.exam AS civicExam, civic_education.`2nd_test` AS civic2, 
        civic_education.`1st_test` AS civic1, christian_religious_studies.result_grade AS crsGrade, christian_religious_studies.result_total AS crsTotal, christian_religious_studies.exam AS crsExam, 
        christian_religious_studies.`2nd_test` AS crs2, christian_religious_studies.`1st_test` AS crs1, current_affairs.result_grade AS affairsGrade, current_affairs.result_total AS affairsTotal, 
        current_affairs.exam AS affairsExam, current_affairs.`2nd_test` AS affairs2, current_affairs.`1st_test` AS affairs1, cultural_creative_art.result_grade AS ccaGrade, cultural_creative_art.result_total AS ccaTotal, 
        cultural_creative_art.exam AS ccaExam, cultural_creative_art.`2nd_test` AS cca2, cultural_creative_art.`1st_test` AS cca1, computer_science.result_grade AS cscGrade, computer_science.result_total AS cscTotal, 
        computer_science.exam AS cscExam, computer_science.`2nd_test` AS csc2, computer_science.`1st_test` AS csc1, english_language.`1st_test` AS eng1, english_language.`2nd_test` AS eng2, 
        english_language.exam AS engExam, english_language.result_total AS engTotal, english_language.result_grade AS engGrade, elementary_science.result_grade AS elementarysciGrade, 
        elementary_science.result_total AS elementarysciTotal, elementary_science.exam AS elementarysciExam, elementary_science.`2nd_test` AS elementarysci2, elementary_science.`1st_test` AS elementarysci1, 
        economics.`1st_test` AS econs1, economics.`2nd_test` AS econs2, economics.exam AS econsExam, economics.result_total AS econsTotal, economics.result_grade AS econsGrade, french.`1st_test` AS french1, 
        french.`2nd_test` AS french2, french.exam AS frenchExam, french.result_total AS frenchTotal, french.result_grade AS frenchGrade, food_nutrition.result_grade AS foodGrade, food_nutrition.result_total AS foodTotal, 
        food_nutrition.exam AS foodExam, food_nutrition.`2nd_test` AS food2, food_nutrition.`1st_test` AS food1, fine_art.result_grade AS fineArtGrade, fine_art.result_total AS fineArtTotal, fine_art.exam AS fineArtExam, 
        fine_art.`2nd_test` AS fineArt2, fine_art.`1st_test` AS fineArt1, geography.result_grade AS geoGrade, geography.result_total AS geoTotal, geography.exam AS geoExam, geography.`2nd_test` AS geo2, 
        geography.`1st_test` AS geo1, general_paper.result_grade AS gpGrade, general_paper.result_total AS gpTotal, general_paper.exam AS gpExam, general_paper.`2nd_test` AS gp2, general_paper.`1st_test` AS gp1, 
         further_mathematics.result_grade AS fmathsGrade, further_mathematics.result_total AS fmathsTotal, further_mathematics.exam AS fmathsExam, further_mathematics.`2nd_test` AS fmaths2, 
        further_mathematics.`1st_test` AS fmaths1, history.result_grade AS hisGrade, history.result_total AS hisTotal, history.exam AS hisExam, history.`2nd_test` AS his2, history.`1st_test` AS his1, 
        health_education.result_grade AS healthGrade, health_education.result_total AS healthTotal, health_education.exam AS healthExam, health_education.`2nd_test` AS health2, 
        health_education.`1st_test` AS health1, government.result_grade AS govtGrade, government.result_total AS govtTotal, government.exam AS govtExam, government.`2nd_test` AS govt2, 
        government.`1st_test` AS govt1, home_economics.`1st_test` AS homeecons1, home_economics.`2nd_test` AS homeecons2, home_economics.exam AS homeeconsExam, 
        home_economics.result_total AS homeeconsTotal, home_economics.result_grade AS homeeconsGrade, islamic_studies.`1st_test` AS islamic1, islamic_studies.`2nd_test` AS islamic2, 
        islamic_studies.exam AS islamicExam, islamic_studies.result_total AS islamicTotal, islamic_studies.result_grade AS islamicGrade, lit_in_english.result_total AS litTotal, lit_in_english.result_grade AS litGrade, 
        lit_in_english.exam AS litExam, lit_in_english.`2nd_test` AS lit2, lit_in_english.`1st_test` AS lit1, local_craft.result_grade AS localCraftGrade, local_craft.result_total AS localCraftTotal, 
        local_craft.exam AS localCraftExam, local_craft.`2nd_test` AS localCraft2, local_craft.`1st_test` AS localCraft1, mathematics.`1st_test` AS maths1, mathematics.`2nd_test` AS maths2, 
        mathematics.exam AS mathsExam, mathematics.result_total AS mathsTotal, mathematics.result_grade AS mathsGrade, local_language.result_grade AS locallangGrade, 
        local_language.result_total AS locallangTotal, local_language.exam AS locallangExam, local_language.`2nd_test` AS locallang2, local_language.`1st_test` AS locallang1, music.`1st_test` AS music1, 
        music.`2nd_test` AS music2, music.exam AS musicExam, music.result_total AS musicTotal, music.result_grade AS musicGrade, quantitative_reasoning.`1st_test` AS qr1, quantitative_reasoning.`2nd_test` AS qr2, 
        quantitative_reasoning.exam AS qrExam, quantitative_reasoning.result_total AS qrTotal, quantitative_reasoning.result_grade AS qrGrade, physics.result_grade AS phyGrade, physics.result_total AS phyTotal, 
        physics.exam AS phyExam, physics.`2nd_test` AS phy2, physics.`1st_test` AS phy1, physical_health_education.`1st_test` AS phe1, physical_health_education.`2nd_test` AS phe2, 
        physical_health_education.exam AS pheExam, physical_health_education.result_total AS pheTotal, physical_health_education.result_grade AS pheGrade, social_studies.`1st_test` AS social1, 
        social_studies.`2nd_test` AS social2, social_studies.exam AS socialExam, social_studies.result_total AS socialTotal, social_studies.result_grade AS socialGrade, verbal_reasoning.`1st_test` AS vr1, 
        verbal_reasoning.`2nd_test` AS vr2, verbal_reasoning.exam AS vrExam, verbal_reasoning.result_total AS vrTotal, verbal_reasoning.result_grade AS vrGrade, technical_drawing.result_grade AS TechDrawGrade, 
        technical_drawing.result_total AS TechDrawTotal, technical_drawing.exam AS TechDrawExam, technical_drawing.`2nd_test` AS TechDraw2, technical_drawing.`1st_test` AS TechDraw1, 
        result_summary.student_id, result_summary.result_term, result_summary.result_session, result_summary.result_level, result_summary.result_class 
FROM   ((((((((((((((((((((((((((((((((((((((((result_summary LEFT JOIN 
         agricultural_science ON result_summary.student_id = agricultural_science.student_id) LEFT JOIN 
         animal_husbandry ON result_summary.student_id = animal_husbandry.student_id) LEFT JOIN 
         basic_science ON result_summary.student_id = basic_science.student_id) LEFT JOIN 
         basic_science_technology ON result_summary.student_id = basic_science_technology.student_id) LEFT JOIN 
         basic_technology ON result_summary.student_id = basic_technology.student_id) LEFT JOIN 
         biology ON result_summary.student_id = biology.student_id) LEFT JOIN 
         business_studies ON result_summary.student_id = business_studies.student_id) LEFT JOIN 
         chemistry ON result_summary.student_id = chemistry.student_id) LEFT JOIN 
         christian_religious_studies ON result_summary.student_id = christian_religious_studies.student_id) LEFT JOIN 
         civic_education ON result_summary.student_id = civic_education.student_id) LEFT JOIN 
         commerce ON result_summary.student_id = commerce.student_id) LEFT JOIN 
         computer_science ON result_summary.student_id = computer_science.student_id) LEFT JOIN 
         cultural_creative_art ON result_summary.student_id = cultural_creative_art.student_id) LEFT JOIN 
         current_affairs ON result_summary.student_id = current_affairs.student_id) LEFT JOIN 
         economics ON result_summary.student_id = economics.student_id) LEFT JOIN 
         elementary_science ON result_summary.student_id = elementary_science.student_id) LEFT JOIN 
         english_language ON result_summary.student_id = english_language.student_id) LEFT JOIN 
         fine_art ON result_summary.student_id = fine_art.student_id) LEFT JOIN 
         food_nutrition ON result_summary.student_id = food_nutrition.student_id) LEFT JOIN 
         french ON result_summary.student_id = french.student_id) LEFT JOIN 
         further_mathematics ON result_summary.student_id = further_mathematics.student_id) LEFT JOIN 
         general_paper ON result_summary.student_id = general_paper.student_id) LEFT JOIN 
         geography ON result_summary.student_id = geography.student_id) LEFT JOIN 
         government ON result_summary.student_id = government.student_id) LEFT JOIN 
         health_education ON result_summary.student_id = health_education.student_id) LEFT JOIN 
         history ON result_summary.student_id = history.student_id) LEFT JOIN 
         home_economics ON result_summary.student_id = home_economics.student_id) LEFT JOIN 
         islamic_studies ON result_summary.student_id = islamic_studies.student_id) LEFT JOIN 
         lit_in_english ON result_summary.student_id = lit_in_english.student_id) LEFT JOIN 
         local_craft ON result_summary.student_id = local_craft.student_id) LEFT JOIN 
         local_language ON result_summary.student_id = local_language.student_id) LEFT JOIN 
         mathematics ON result_summary.student_id = mathematics.student_id) LEFT JOIN 
         music ON result_summary.student_id = music.student_id) LEFT JOIN 
         physical_health_education ON result_summary.student_id = physical_health_education.student_id) LEFT JOIN 
         physics ON result_summary.student_id = physics.student_id) LEFT JOIN 
         quantitative_reasoning ON result_summary.student_id = quantitative_reasoning.student_id) LEFT JOIN 
         accounts ON result_summary.student_id = accounts.student_id) LEFT JOIN 
         social_studies ON result_summary.student_id = social_studies.student_id) LEFT JOIN 
         technical_drawing ON result_summary.student_id = technical_drawing.student_id) LEFT JOIN 
         verbal_reasoning ON result_summary.student_id = verbal_reasoning.student_id) WHERE result_summary.student_id = '334' 

レコードは、すべてではなく一部のテーブルに存在します。私は助けが必要ですか、これには別のアプローチがありますか?

+1

なぜこれほど多くのテーブルからこの

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; default command timeout=20; 

を試してみてください?各コースに1つずつありますか?私にはデザイン上の問題のようだ。しかし、他の人が指摘しているように、複雑なクエリは時間がかかります。コマンドのタイムアウトよりも時間がかかる場合は、タイムアウトを長くすることが役に立ちます。 –

+0

私はdbデザインに関するいくつかの教科書を調べます。 – Plutonix

+0

@ChrisDunawayコースごとに1つのテーブルは、学生が多いです。私はF0r3v3r-A-N00bが示唆したがまだ成功しなかったものを試した。 – Diamond

答えて

0

これは非常に複雑なクエリです。時間がかかることがあります。 ADO.NETコマンドオブジェクトの既定のタイムアウト時間は30秒です。したがって、それよりも時間がかかる場合は、クエリのタイムアウトが発生します。より長い期間が必要な場合は、MySqlCommandCommndTimeoutプロパティを適切な値に設定します。