SQL有外连接的时候注意过滤条件位置否则会导致网页慢_Mssql数据库教程
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃閳峰牓姊洪幖鐐测偓鏇⑺囬幍顔藉床婵炴垶锕╅崯鍛亜閺冨洤鍚归柛鎴濈秺濮婃椽宕崟顒€娅ょ紓浣筋嚙閻楁挸顕g拠娴嬫婵﹩鍋呴崟鍐⒑缂佹ê濮﹂柛鎾寸☉閳绘捇濡舵径瀣ф嫼闂佸憡绋戦敃銉╁煕閹烘鐓涘ù锝呮啞閹插憡淇婇崣澶婂妤犵偞岣块埀顒佺⊕閿氭い搴㈡崌濮婃椽宕烽鐘茬闁汇埄鍨伴敃銉х博閻旂厧鍗抽柕蹇婃閹风粯绻涙潏鍓у閻犫偓閿曞倸缁╅柡澶嬶紩閻熸壋鍫幖绮光偓鏂ユ嫬婵$偑鍊戦崹娲€冩繝鍛唴闂備胶绮粙鎾宦ㄩ埀鐞掗梻鍌氬€搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊為悷婊冪箻瀵娊鏁冮崒娑氬幗闂侀潧绻嗛幊姘跺捶椤撶姷骞撳┑掳鍊曢幊蹇涙偂濞嗘挻鐓欐繛鍫濈仢閺嬫稒銇勯敐鍛仮闁哄本绋撻埀顒婄到婢у海寮ч埀顒勬⒑閸濆嫭婀版繛鍙壝銉╁礋椤栨岸鍞跺┑鐘绘涧濡藟濞嗘劗绡€闁汇垽娼ф禒锕傛煕閵婏箑鍔剁憸鐗堢矒濮婅櫣鎮伴垾鍏呭濠电偛顕慨鎾敄閸℃稑纾归柣銏犳啞閻撱儲绻濋棃娑欘棞闁哄棙鐟ラ埞鎴︽晬閸曨偄骞嬮梺鍝勬湰缁嬫捇鍩€椤掑﹦绉甸柛瀣噹閻e嘲鐣濋埀顒勫焵椤掑喚娼愭繛鍙夅缚閺侇噣鏁撻悩鑼暫濠电偛妫欓幐鎼佹嫅閻斿吋鐓忓璺虹墕閸旀粓鏌¢崱鈺€閭慨濠傤煼瀹曟帒鈻庨幋顓熜滈梻浣告贡閳峰牓宕戦崟顓炲疾闂備線娼ц墝闁哄懏绋撴竟鏇熺節濮橆厾鍘介梺褰掑亰閸犳牠宕濈€n喗鐓曞┑鐘插€绘禒娑㈡煏閸パ冾伃妤犵偞甯″畷鍗烆渻閹屾闂傚倸鍊风粈渚€鎮块崶顒婄稏濠㈣埖鍔曢崹鍌炴煕瑜庨〃鍛不閺嶃劎绠鹃柛鈩兩戠亸顓㈡煟椤撶噥娈旀い顓炴健閹虫粓鎯夐鍛伌闁轰礁绉电粭鐔煎焵椤掆偓椤繒绱掑Ο璇差€撻柣鐔哥懃鐎氼剚绂掗埡鍛拺闁告稑锕ラ悡銉╂⒑鐢喚鍒伴柣锝夋敱鐎靛ジ寮堕幋婵嗘暏闁荤喐绮嶇划鎾崇暦閻㈢ǹ鍗抽柣鎰ㄦ櫆閺傗偓闂備胶绮敋缁剧虎鍙冮妴鍌炲蓟閵夛妇鍘搁梺鍛婁緱閸犳宕愰幇鐗堢厸閻忕偠顕ф慨鍌炴煙椤斿搫鈧繂鐣烽幒鎴旀婵妫旂槐锟�婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻鐔兼⒒鐎靛壊妲紒鐐劤椤兘寮婚敐澶婄疀妞ゆ帊鐒﹂崕鎾绘⒑閹肩偛濡奸柛濠傛健楠炲啰鎲撮崟顒€顫¢梺鐟板槻閻牓宕濋崨顓涙斀闁绘劖褰冮幃鎴︽煟濡ゅ啫鈻堟鐐插暙閻o繝骞嶉搹顐も偓濠氭椤愩垺澶勯柟灏栨櫆鐎靛ジ鍩€椤掑嫭鈷掑ù锝堟鐢稓绱掔拠鎻掆偓鍧楀箖閵夛妇闄勭紒瀣劵閹芥洖鈹戦悙鏉戠仧闁搞劌缍婇幃鐐裁洪鍛幈闂佽婢橀崥鈧紒銊ョ摠娣囧﹪骞撻幒鏂库叺濠殿喖锕ㄥ▍锝囨閹烘嚦鐔烘嫚閺屻儳鈧椽姊绘担鐟邦嚋婵炴彃绻樺畷褰掓寠婢舵ê娈ㄦ繝鐢靛У閼归箖鎮橀幎鑺ョ厵濡鑳堕ˇ锕傛煙椤旇棄鐏撮柡宀€鍠栭幊鏍煛閸曞﹤顦甸弻宥堫檨闁告挻鐟ф竟鏇㈩敇閵忊晜鏅╅梺纭呮彧闂勫嫰鍩涢幒鎳ㄥ綊鏁愰崶銊ユ畬闂佸磭绮ú鐔煎蓟閿熺姴鐒垫い鎺嶇劍缂嶅洭鏌嶉崫鍕偓鐟扳枔娴煎瓨鈷戦悹鎭掑妼閺嬫柨鈹戦鑺ュ唉闁归攱鍨块幃銏ゅ礂閼测晛甯惧┑鐘垫暩閸嬬喖宕戦幘鏂ユ瀺闁糕剝绋掗悡鏇㈡倵閿濆簼绨兼い銉e灲閺岋紕浠﹂崜褋鈧帒霉閻欏懐鐣电€规洘绮忛ˇ顔戒繆閹绘帞澧曟い顏勫暣婵″爼宕ㄧ€电ǹ妞介梻浣烘嚀閸ゆ牠骞忛敓锟� 缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ岸姊绘担钘壭撻拑杈╃磼鐠囪尙澧曟い顐㈢箰鐓ゆい蹇撶У閺呫垽姊洪柅鐐茶嫰婢ф壆绱掗鑺モ拻闁逞屽墴濞佳囧箺濠婂牊鍋濈紓浣姑肩换鍡涙煏閸繃鍣洪柛锝嗘そ閺岋綁骞樼€靛憡鍣板┑顔硷攻濡炰粙銆佸鈧俊姝岊槾闁哄棛濮电换婵嬪煕閳ь剟宕堕埡鍐╂瘒闂備礁鎼悮顐﹀磹濠靛棭鍤曢柛顐f礀缁犱即骞栫划鍏夊亾閸欏鈻曢梻鍌氬€风粈渚€骞栭锕€瀚夋い鎺戝閸庡孩銇勯弽銊р棩缂佽妫濋弻锝夊箣閻樺灚鎲橀梺杞扮閿曨亪寮婚敐澶婄闁告劘灏欏Σ鏉库攽閻愯泛顥嶇€规洜鏁稿Σ鎰板箻鐠囪尙锛滃┑鐐叉鐢晠宕ぐ鎺撯拺缂佸顑欓崕鎰版煙閸涘﹥鍊愰柍銉畵瀹曠ǹ螖娴e憡鐤傞梻鍌氬€搁悧濠勭矙閹达讣缍栫€广儱顦伴埛鎴犵磽娴h偂鎴犱焊椤撱垺鐓曢柣鏂挎啞鐏忥妇鈧鍠栭…宄邦嚕閹绢喗鍋勫瀣捣閻涱噣姊绘担绋款棌闁稿鎳愰幑銏ゅ磼閻愨斁鍋撻弽銊ョ窞闁归偊鍘搁幏铏圭磽閸屾瑧鍔嶅畝锝堟硶缁濡烽妷鍐嚀楗増鎯斿┑瀣粣闁诲孩顔栭崰鏍€﹂悜钘夋瀬闁圭増婢樺婵囥亜韫囨挻鍣洪柡澶嬫倐濮婄粯鎷呴崨濠呯闂佺ǹ顑嗛幐绋跨幓閸喒鏋庨柟鍨暞閺呮粓姊虹捄銊ユ珢闁瑰嚖鎷� 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬鍡欑厯闂佸搫琚崝鎴﹀箖閵忋倕浼犻柛鏇熷灟閸ㄥ鎯€椤忓牆绠氱憸婊堟偂婵傚憡鐓涢悘鐐插⒔濞插鈧鍠楅幐铏繆閹间礁唯鐟滃宕戦幘娲绘晢闁告洦鍓涢崢閬嶆⒑闂堟侗妾х紒鑼跺Г娣囧﹪鎮惧畝鈧壕鐣屸偓骞垮劚閹冲繘宕板鈧弻锛勪沪閻e睗褏鈧娲﹂崑濠傜暦閻旂⒈鏁冮柨婵嗘-閸熲偓婵犵绱曢崑鎴﹀磹瑜忛埀顒勬涧閻倸鐣风憴鍕秶闁冲搫鍊告惔濠傗攽閻樼粯娑фい鎴濇嚇閿濈偤宕ㄧ€涙ḿ鍙嗗┑鐘绘涧濡瑩藟閻樼粯鐓忛柛鈩兠慨宥嗘叏婵犲啯銇濈€规洦鍋婂畷鐔碱敇閻愨晜瀚涢梻鍌欑閹诧繝骞愭ィ鍐ㄧ獥閹兼番鍔嶉崑鈺冣偓鐟板鐎氬牓寮崼婵堝姦濡炪倖甯掔€氥劑宕戦幋婢濆綊宕楅崗鑲╃▏闂備礁宕ú顓㈠蓟閿濆妫橀柟绋垮閸庢挸螖閻橀潧浠﹂柛鏃€鐟ラ~蹇曠磼濡顎撻柣鐔哥懃鐎氼剚绂掗埡鍛拺缂佸鐏濋惁銊╂煕閵娿劍纭鹃柣锝呭槻閳规垿宕遍埡浣瑰€┑鐘灱濞夋盯顢栭崨鏉戠妞ゆ挶鍨洪埛鎴犵棯椤撶偞鍣虹憸鎶婂洦鈷掗柛鏇ㄥ亜椤忣參鏌涢埡鍌滄创妤犵偞甯¢獮瀣敇閻樺弶鏆╅梻浣藉吹婵儳鈻嶉敐鍥︾剨闁靛ň鏅涚粈澶愭煟閺冨倸甯堕柡瀣╃窔閺屾盯顢曢悩鎻掑闂佹娊鏀遍崹鍧楀蓟濞戞ǚ鏀介柛鈩冾殢娴煎倸顪冮妶搴′壕缂佺姵鎹囧璇测槈濞嗘垹鐦堥梺鍛婂姦娴滄粓鍩呴崷顓涘亾閸忓浜鹃梺鎸庣箓閻楀棝宕濋悽鐢电<闁绘ê纾埥澶愭煃閽樺妲搁摶锝嗙節瑜忛崑鎾斥枍婵犲洦鐓涢悘鐐额嚙婵倻鈧鍣崳锝呯暦閹烘垟鍫柛鎰典憾閸嬔冣攽閿涘嫬浜奸柛濠冨灴瀹曟洟鎳犻鍌滅厯闂佽宕橀崺鏍綖閺囥垺鐓欓柟瑙勫姦閸ゆ瑧鐥幆褍鎮戠紒缁樼洴瀹曞崬螣閾忛€涙樊濠电姷顣介埀顒冨皺閻瑦鎱ㄦ繝鍐┿仢鐎规洦鍋婃俊鐑藉Ψ閵堝洦宕熷┑锛勫亼閸娿倝宕㈡ィ鍐ㄧ婵せ鍋撻柟顔诲嵆椤㈡瑧鎹勯妸褎婢戞繝鐢靛仦閸ㄥ爼鎮烽敃鈧埢宥夊閵堝棌鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝栭梻渚€鈧偛鑻晶鎾煙椤斿吋鍋ユい銏″哺閸┾偓妞ゆ帒瀚拑鐔兼煥濠靛棙鍟掗柡鍐ㄧ墕閻掑灚銇勯幒鎴濐仾闁稿顑呴埞鎴︽偐閸欏鎮欓梺娲诲幗椤ㄥ﹪鎮¢锕€鐐婇柕濞р偓婵洭姊虹紒妯诲鞍闁荤啙鍛潟闁规儳鐡ㄦ刊鎾⒒閸喓銆掑ù鐘层偢濮婃椽宕崟闈涘壉缂備礁顑嗙敮妤冪矚鏉堛劎绡€闁搞儯鍔岄埀顒傚厴閺岀喎鈻撻崹顔界亾闂佺粯鎸婚幑鍥ь潖濞差亜浼犻柛鏇ㄥ亽濡茬敻姊洪柅鐐茶嫰婢ь垶鏌涢幘鏉戝摵鐎规洏鍎抽埀顒婄秵閸犳牜绮婚崷顓犵<妞ゆ梻鍘х敮銊╂煕鐎n偅宕岄柟宕囧█椤㈡鎷呯憴鍕典化闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸弫鎾绘偐椤旂懓浜鹃柛鎰靛枛楠炪垺绻涢崱妤冪闁诲孩濞婇幃妤呯嵁閸喖濮庡┑鐐额嚋缁犳垿鎮鹃悜钘夌煑濠㈣泛鐬奸鏇㈡⒑閻熸壆鎽犻柣鐔村劦閹﹢鍩¢崒銈嗩啍闂佺粯鍔︽禍婊堟倶椤忓媱搴ㄥ炊瑜濋煬顒併亜閵忥紕鈽夐柍瑙勫灴楠炲洭顢楁笟鍥ф暢闂傚倸鍊搁崐鎼佸磹閹间絸鍥敍濠婂懐鐓嬮梺鍦檸閸犳牠鎮″鈧弻鐔告綇閹呮В闂佽桨绀侀澶愬蓟濞戙垹鐒洪柛鎰典簼閸n噣鏌﹂崘顔绘喚婵﹦绮幏鍛村川婵犲倹娈樻繝娈垮枛閿曘倗绱炴繝鍥ラ柛鎰ㄦ櫇缁♀偓闂佹悶鍎滈崟顑岸姊绘笟鈧埀顒傚仜閼活垱鏅堕鐐寸厪闁搞儜鍐句純濡ょ姷鍋炵敮锟犵嵁鐎n亖鏀介柛銉㈡櫃婢规洖鈹戦悩鍨毄闁稿鐩畷銉р偓锝庡枛缁€澶嬬箾閸℃ɑ灏柦鍐枛閺岋綁寮崒妤佸珱闂佽桨绀侀敃顏堝蓟閵堝悿鍦偓锝庡亝閻濇棃姊虹紒妯诲暗闁哥姵鐗犻獮鍐ㄎ旈崘鈺佹瀭闂佸憡娲﹂崜娑⑺囬妸銉㈡斀闁绘劘娉涢惃娲煕閻樺磭澧い鏇稻缁绘繂顫濋鈧懓鍨攽鎺抽崐鏇㈡晝閵堝绠栭柟杈鹃檮閳锋垿鏌涘☉姗堟缂佸爼浜堕弻娑㈠Ω閿曗偓閳绘洜鈧娲忛崹浠嬨€佸Δ鍛妞ゆ垼濮ょ€氳棄鈹戦悙鑸靛涧缂傚秮鍋撴繝娈垮枔閸婃鈽夐悽绋块唶闁哄洨鍠撻崢閬嶆⒑閹稿海绠撶紒缁樺浮閹箖宕归顐n啍闂佺粯鍔樼亸娆戠不婵犳碍鐓涘ù锝堫潐瀹曞矂鏌℃担瑙勫磳闁轰焦鎹囬弫鎾绘晸閿燂拷,闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳婀遍埀顒傛嚀鐎氼參宕崇壕瀣ㄤ汗闁圭儤鍨归崐鐐差渻閵堝棗绗傜紒鈧笟鈧畷婊堫敇閻戝棙瀵岄梺闈涚墕濡鎱ㄨ缁辨帡鎮╅崘鑼患缂備緡鍠栭悧蹇涘焵椤掑﹦绉甸柛瀣╃劍缁傚秴饪伴崼鐔哄幍闂侀€涚祷濞呮洖鈻嶉崨瀛樼厽闊洤锕ュ▍鍥煙椤曞懎鏋涙い顐g矒閸┾偓妞ゆ巻鍋撴い顐㈢箳缁辨帒螣鐠囧樊鈧挾绱撴担鍦槈妞ゆ垵鎳庨埢鎾活敇閻愨晜鏂€濡炪倖姊归弸濠氬礂椤掑倻纾奸柣妯挎珪瀹曞矂鏌℃担鐟板闁诡喗鐟╁鍫曞箣閻樼數宓侀梻浣筋嚙閸戠晫绱為崱娑樼婵炴垯鍩勯弫濠囨煛閸モ晛鏋旂紒鈾€鍋撻梻浣圭湽閸ㄨ棄岣胯閻☆參姊绘担鍛靛綊顢栭崨顓囨稑鈹戦崱娆愭闂佹眹鍨绘灙闁告濞婇弻鏇$疀閵壯咃紵闂佸憡锚瀹曨剟鈥旈崘顔嘉ч柛鈩冾殔琛肩紓鍌欑劍瑜板啯鏅堕悾灞藉灊闁割偁鍎遍悞鍨亜閹烘垵鈧崵澹曢挊澹濆綊鏁愰崱妤冪シ婵炲瓨绮撶粻鏍ь潖濞差亜宸濆┑鐘插€搁~鍛存⒑閸濆嫬鈧悂宕愰崷顓犵焿鐎广儱鎳夐崼顏堟煕椤愩倕鏋旈柛妯绘倐濮婅櫣绮欓幐搴㈡嫳濠殿喗菧閸斿秶绮嬮幒妤€顫呴柕鍫濇閸橀潧顪冮妶鍡橆梿婵☆偄瀚伴幃姗€鏁冮崒娑氬帾闂佹悶鍎滈崘鍙ョ磽缂傚倷鑳舵慨鐢告儎椤栨凹鍤曢柟缁㈠枟閸婄兘鎮楅悽鐢点€婇柛瀣崌瀹曟粏顦寸痪鎹愭闇夐柨婵嗙墛椤忕娀鎮介娑氭创闁哄矉缍侀崺鈩冪節閸屾粈妗撻梻浣虹帛娓氭宕板璺虹劦妞ゆ帒锕︾粔鐢告煕閻樻剚娈滅€规洘鍔欓幃婊堟嚍閵壯冨箰濠电姰鍨煎▔娑㈩敄閸涘瓨鍊堕柍鍝勫€荤粻楣冩煕椤愶絿鈽夐柍褜鍓氱换鍌烇綖韫囨洜纾兼俊顖濐嚙椤庢捇姊洪崨濠勬创婵炰匠鍛濠电姴娲㈤埀顑跨窔瀵粙顢橀悙鑼垛偓鍨攽閻愭潙鐏﹀畝锝呮健椤㈡瑦寰勯幇顓涙嫼闂佺鍋愰崑娑㈠礉閳ь剟鏌h箛鏇炰粶濠⒀呮櫕缁瑦绗熼埀顒€顫忕紒妯诲闁告稑锕ら弳鍫㈢磽娴g瓔鍤欓柛濠傤煼閸┾偓妞ゆ帊鑳跺▓浼存煕閵夋垵鍟▓銈夋⒑閻熸澘鎮戦柣锝庝邯瀹曟繂顓兼径瀣簵濠电偛妫欓崝鎴炵濠婂牊鐓涚€规搩鍠栫€氬嘲螞閻愮儤鐓熼幖娣灩閸ゎ剟鏌涢悩鎰佹畼缂侇喖顑呴鍏煎緞濡粯娅嗛梻浣稿閸嬪棝宕崸妤€绠紓浣贯缚缁犻箖寮堕崼婵嗏挃闁告帊鍗抽弻鐔烘嫚瑜忕弧鈧悗瑙勬处閸ㄥ爼骞冨▎鎾村€绘俊顖滃帶楠炴姊绘担铏瑰笡婵﹦鎳撳玻鍨枎閹惧磭顦梺闈涚墕椤︿即鎮″▎鎰垫闁绘劘灏欐禒銏ゆ煟韫囧﹥娅婇柟钘夌埣閺佹劙宕ㄩ鐔蜂壕闁圭儤鍩堝ḿ鈺呮煟閹捐櫕鎹eù鐘櫅閳规垿鎮欓懠顒€顣堕梺鍛婃煥缁夊爼骞戦姀鐘斀閻庯綆鍋勬禒娲⒒閸屾氨澧涢柛鎺嗗亾闂佹寧绻傚ú銊ノ涢鐐寸厸濠㈣泛瀛╃涵鍫曞极閸儲鍊垫繛鍫濈仢閺嬬喖鏌i幙鍕瘈闁绘侗鍣e浠嬪Ω閿曗偓椤庢捇姊洪棃鈺佺槣闁告ḿ鍘ч锝夊箮閼恒儮鎷绘繛杈剧秬濞咃絿鏁☉娆戠闁告瑥顦辨晶鐢碘偓瑙勬礃閸旀瑥鐣烽悜绛嬫晣婵炴垶眉婢规洖鈹戦缁撶細闁稿鎸鹃埀顒佺啲閹凤拷!
推荐:CMD命令操作MSSQL2005数据库(命令整理)
创建数据库、创建用户、修改数据的所有者、设置READ_COMMITTED_SNAPSHOT以及备份、日志扥等等,感兴趣的朋友可以参考下
一来到公司,项目经理就找到开发leader,说我们网站 页面很慢,让他排查原因。
一听说 网站慢,页面慢哥就来精神了,哥的老本行就是 解决“慢”的问题。
开发leader 很郁闷的说,我们已经加了 memcache了,20分钟 cache一次,咋个还是慢呢,
于是哥就问,那个网页跑了哪些SQL? 能抓出来让我看看吗? 开发Leader 果断的把SQL 抓了出来。
经过排查,我们发现了一个SQL确实跑得慢。该SQL 如下
复制代码 代码如下:www.mb5u.com
select *
from (select u.NAME UniversityName,
u.id UniversityId,
count(a.SIGNUPNUMBER) playercnt
from T_B_UNIVERSITY u
left join T_D_EDUCATION e
on e.UNIVERSITY_ID = u.id
left join T_D_VIDEO_PLAYER a
on a.USER_ID = e.user_id
and e.ISDEFAULT = 1
and e.ISVALID = 1
and a.AUDITSTATUS = 1
and a.ISVALID = 1
left join T_D_USER c
on a.USER_ID = c.id
and c.ISVALID = 1
where u.REGION_CODE like '43%'
group by u.NAME, u.id)
order by playercnt desc;
执行计划如下
复制代码 代码如下:www.mb5u.com
执行计划
----------------------------------------------------------
Plan hash value: 3938743742
--------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 142 | 10366 | 170 (3)| 00:00:03 |
| 1 | SORT ORDER BY | | 142 | 10366 | 170 (3)| 00:00:03 |
| 2 | HASH GROUP BY | | 142 | 10366 | 170 (3)| 00:00:03 |
|* 3 | HASH JOIN RIGHT OUTER| | 672 | 49056 | 168 (2)| 00:00:03 |
|* 4 | TABLE ACCESS FULL | T_D_USER | 690 | 5520 | 5 (0)| 00:00:01 |
| 5 | NESTED LOOPS OUTER | | 672 | 43680 | 162 (1)| 00:00:02 |
|* 6 | HASH JOIN OUTER | | 672 | 37632 | 14 (8)| 00:00:01 |
|* 7 | TABLE ACCESS FULL | T_B_UNIVERSITY | 50 | 2050 | 8 (0)| 00:00:01 |
| 8 | TABLE ACCESS FULL | T_D_EDUCATION | 672 | 10080 | 5 (0)| 00:00:01 |
| 9 | VIEW | | 1 | 9 | 0 (0)| 00:00:01 |
|* 10 | FILTER | | | | | |
|* 11 | TABLE ACCESS FULL| T_D_VIDEO_PLAYER | 1 | 15 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("A"."USER_ID"="C"."ID"(+))
4 - filter("C"."ISVALID"(+)=1)
6 - access("E"."UNIVERSITY_ID"(+)="U"."ID")
7 - filter("U"."REGION_CODE" LIKE '43%')
10 - filter("E"."ISVALID"=1 AND "E"."ISDEFAULT"=1)
11 - filter("A"."USER_ID"="E"."USER_ID" AND "A"."AUDITSTATUS"=1 AND
"A"."ISVALID"=1)
大家能发现这个SQL 的问题吗? 这个 SQL 之所以跑得慢是因为开发人员把SQL的条件写错位置了
正确的写法应该是 下面这样的
复制代码 代码如下:www.mb5u.com
select *
from (select u.NAME UniversityName,
u.id UniversityId,
count(a.SIGNUPNUMBER) playercnt
from T_B_UNIVERSITY u
left join T_D_EDUCATION e
on e.UNIVERSITY_ID = u.id
and e.ISDEFAULT = 1
and e.ISVALID = 1
left join T_D_VIDEO_PLAYER a
on a.USER_ID = e.user_id
and a.AUDITSTATUS = 1
and a.ISVALID = 1
left join T_D_USER c
on a.USER_ID = c.id
and c.ISVALID = 1
where u.REGION_CODE like '43%'
group by u.NAME, u.id)
order by playercnt desc;
执行计划如下
复制代码 代码如下:www.mb5u.com
执行计划
----------------------------------------------------------
Plan hash value: 2738827747
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 142 | 11218 | 25 (16)| 00:00:01 |
| 1 | SORT ORDER BY | | 142 | 11218 | 25 (16)| 00:00:01 |
| 2 | HASH GROUP BY | | 142 | 11218 | 25 (16)| 00:00:01 |
|* 3 | HASH JOIN RIGHT OUTER | | 301 | 23779 | 23 (9)| 00:00:01 |
|* 4 | TABLE ACCESS FULL | T_D_USER | 690 | 5520 | 5 (0)| 00:00:01 |
|* 5 | HASH JOIN RIGHT OUTER| | 301 | 21371 | 17 (6)| 00:00:01 |
|* 6 | TABLE ACCESS FULL | T_D_VIDEO_PLAYER | 78 | 1170 | 3 (0)| 00:00:01 |
|* 7 | HASH JOIN OUTER | | 301 | 16856 | 14 (8)| 00:00:01 |
|* 8 | TABLE ACCESS FULL | T_B_UNIVERSITY | 50 | 2050 | 8 (0)| 00:00:01 |
|* 9 | TABLE ACCESS FULL | T_D_EDUCATION | 301 | 4515 | 5 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("A"."USER_ID"="C"."ID"(+))
4 - filter("C"."ISVALID"(+)=1)
5 - access("A"."USER_ID"(+)="E"."USER_ID")
6 - filter("A"."AUDITSTATUS"(+)=1 AND "A"."ISVALID"(+)=1)
7 - access("E"."UNIVERSITY_ID"(+)="U"."ID")
8 - filter("U"."REGION_CODE" LIKE '43%')
9 - filter("E"."ISDEFAULT"(+)=1 AND "E"."ISVALID"(+)=1)
之前SQL要跑至少5秒以上,现在0.1秒能出结果。
各位童鞋,SQL 有外连接的时候,要注意过滤条件的位置,记住啦!!!
有SQL 需要优化的 欢迎加入 QQ 群 220761024 申请注明 来自CSDN
分享:sql 游标的使用—游标FOR循环小例子
游标for循环是在pl/sql块中使用游标最简单的方式,它简化了对游标的处理。当使用游标for循环时,oracle会隐含的打开游标,提取游标数据并关闭游标。

相关Mssql数据库教程:
- sql 语句练习与答案
- 深入C++ string.find()函数的用法总结
- SQL Server中删除重复数据的几个方法
- sql删除重复数据的详细方法
- SQL SERVER 2000安装教程图文详解
- 使用sql server management studio 2008 无法查看数据库,提示 无法为该请求检索数据 错误916解决方法
- SQLServer日志清空语句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸载方法(其他版本类似)
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表
- SQL Server 2008 清空删除日志文件(瞬间日志变几M)
- Win7系统安装MySQL5.5.21图解教程
- 将DataTable作为存储过程参数的用法实例详解
- 相关链接:
- 教程说明:
Mssql数据库教程-SQL有外连接的时候注意过滤条件位置否则会导致网页慢
。