Boosting SQL Performance with cursor_sharing - Oracle

5 downloads 46 Views 81KB Size Report
Boost SQL Performance with cursorBsharing. EXECUTIVE OVERVIEW. This paper describes enhancements to the cursor sharing infrastructure, added in.
%RRVW64/3HUIRUPDQFHZLWK FXUVRUBVKDULQJ $Q2UDFOH7HFKQLFDO:KLWH3DSHU -XO\

%RRVW64/3HUIRUPDQFHZLWKFXUVRUBVKDULQJ

EXECUTIVE OVERVIEW

7KLVSDSHUGHVFULEHVHQKDQFHPHQWVWRWKHFXUVRUVKDULQJLQIUDVWUXFWXUHDGGHGLQ 2UDFOHL5HOHDVHDQG2UDFOHL7KHVHHQKDQFHPHQWVDUHFRQWUROOHGE\DQHZ SDUDPHWHUFXUVRUBVKDULQJ 7KHJRDORIFXUVRUBVKDULQJLVWRLPSURYHVHUYHUSHUIRUPDQFHIRUDSSOLFDWLRQV WKDWGRQ·WXVHELQGYDULDEOHVHYHU\ZKHUH NEED FOR CURSOR_SHARING

7KLVVHFWLRQH[SODLQVZK\DSSOLFDWLRQVQRWXVLQJELQGYDULDEOHVUXQLQWR SHUIRUPDQFHSUREOHPV Applications execute similar SQL statements repeatedly

$SSOLFDWLRQVWKDWXVHDQ2UDFOHGDWDEDVHWRPDQDJHWKHLUGDWDPXVWDFFHVVPRGLI\ LWXVLQJ64/VWDWHPHQWV7KHVH64/VWDWHPHQWVDUHHLWKHUGLUHFWO\LVVXHGE\DQ DSSOLFDWLRQWKURXJK2&,2&&,-'%&3/64/HWFRULQGLUHFWO\LVVXHGWKURXJK RWKHUXWLOLWLHVRUOLEUDULHV HJGEPVBVTO  $QDSSOLFDWLRQW\SLFDOO\SURYLGHVDIL[HGFROOHFWLRQRIIXQFWLRQVWRWKHHQGXVHU GHSHQGLQJRQWKHW\SHRIDSSOLFDWLRQHJDQ+5DSSOLFDWLRQPLJKWSURYLGH IXQFWLRQDOLW\OLNHDGGLQJDQHZHPSOR\HHPRGLI\LQJSHUVRQDOLQIRUPDWLRQDERXWDQ HPSOR\HHHWF(YHU\VXFKIXQFWLRQDOLW\HYHQWXDOO\DFFHVVHVDQGRUPRGLILHVGDWD XVLQJ64/6LQFHDSSOLFDWLRQVUHSHDWHGO\H[HFXWHVXFKIXQFWLRQDOLW\DQ DSSOLFDWLRQ·VLQWHUDFWLRQZLWKDQ2UDFOHGDWDEDVHFRQVLVWVRIUHSHDWHGH[HFXWLRQRI VLPLODU64/VWDWHPHQWV Steps involved in executing SQL

7RH[HFXWHD64/VWDWHPHQWDFOLHQWSURJUDPFDQJRWKURXJKDIHZGLIIHUHQW LQWHUIDFHV)RUH[DPSOHWKURXJK2&,DFOLHQWFUHDWHVDVWDWHPHQWKDQGOHWKHQ SUHSDUHVWKHVWDWHPHQWELQGVGHILQHVDQGH[HFXWHVWKHVWDWHPHQWKDQGOH2UD 64/VWDWHPHQWFDQEHH[HFXWHGWKURXJKD3/64/SURFHGXUHE\GLUHFWO\ HPEHGGLQJLWLQWKHSURFHGXUHWH[W 5HJDUGOHVVRIWKHFOLHQWLQWHUIDFHDQ2UDFOHGDWDEDVHDOZD\VJRHVWKURXJKVRPH IL[HGVWHSV E\GHIDXOW 

%RRVW64/3HUIRUPDQFHZLWKFXUVRUBVKDULQJ3DJH

 RSHQDXVHUFXUVRU$XVHUFXUVRULVDKDQGOHWRDOORWKHUXVHUVWDWH DVVRFLDWHGZLWKDQ\64/VWDWHPHQWOLNHH[HFXWLRQPHPRU\UHIHUHQFHWRWKH VKDUHGFXUVRUFXUUHQWVWDWHRIWKHXVHUFXUVRUHWF  SDUVHD64/VWDWHPHQWLQWRWKHRSHQXVHUFXUVRU'RLQJWKLVDVVRFLDWHVWKH 64/VWDWHPHQWZLWKWKHXVHUFXUVRULWDOVRFUHDWHVDVKDUHGFXUVRUZKLFK FRUUHVSRQGVWRWKHSDUVHGIRUPRIWKH64/VWDWHPHQW7KHVKDUHGFXUVRU PD\DOVREHW\SHFKHFNHGDQGRSWLPL]HGDVDSDUWRIWKHSDUVHLQVRPHFDVHV 7KHSURFHVVRISDUVLQJW\SHFKHFNLQJDQGRSWLPL]LQJD64/VWDWHPHQWLV W\SLFDOO\YHU\UHVRXUFHLQWHQVLYHLQWHUPVRI&38PHPRU\DQGODWFK FRQWHQWLRQ  ELQGYDULDEOHVLIQHFHVVDU\7KLVSURYLGHV2UDFOHZLWKWKHQHFHVVDU\ LQIRUPDWLRQDERXWWKHW\SHVL]HYDOXHHWFRIWKHELQGYDULDEOHVLQWKH VWDWHPHQW  W\SHFKHFNDQGRSWLPL]HWKHVKDUHGFXUVRULIQRWDOUHDG\GRQH  H[HFXWHWKHXVHUFXUVRU7KLVVWHSGRHVWKHDFWXDOZRUNRIH[HFXWLQJWKH VWDWHPHQWDQGZLOOXVHXS&38DQGVHVVLRQPHPRU\GHSHQGLQJRQWKH FRPSOH[LW\RIWKHVWDWHPHQW 1RWHWKDWSDUVHW\SHFKHFNDQGRSWLPL]DWLRQ FROOHFWLYHO\FDOOHGFRPSLODWLRQLQWKLV GRFXPHQW FRPSULVHWKHEXONRIWKHRYHUKHDGLQH[HFXWLQJD64/VWDWHPHQWDQG FDQOLPLWFDSDFLW\DQGVFDODELOLW\RIWKHGDWDEDVH Shared cursors

*LYHQWKDWDW\SLFDODSSOLFDWLRQUHSHDWHGO\H[HFXWHVVLPLODUVWDWHPHQWVDORWRI RSWLPL]DWLRQVLQWKH2UDFOHGDWDEDVHIRU64/SURFHVVLQJWDUJHWUHSHDWHG H[HFXWLRQV7KHPRVWLPSRUWDQWRSWLPL]DWLRQLVVKDUHGFXUVRUVZKLFKWULHVWR UHPRYHWKHRYHUKHDGRIFRPSLODWLRQIRUDQDYHUDJHH[HFXWLRQE\VKDULQJWKHUHVXOW RIFRPSLODWLRQEHWZHHQGLIIHUHQWH[HFXWLRQVRIWKHVDPHVWDWHPHQW HLWKHU KDSSHQLQJFRQFXUUHQWO\RUDWYHU\GLIIHUHQWWLPHV 7KHSLFWXUHEHORZLOOXVWUDWHV KRZWKLVLVGRQH U ser Session 1 Private execution state

Shared C ursor

U ser Session 2 Private execution state

%RRVW64/3HUIRUPDQFHZLWKFXUVRUBVKDULQJ3DJH

7RHQDEOHVKDULQJFXUVRUV2UDFOHVSOLWVXSWKHVWDWHPHQWH[HFXWLRQVWDWHLQWRD VKDUHGFXUVRUDQGDSHUH[HFXWLRQLQVWDQWLDWLRQ7KHVKDUHGFXUVRULVWKHUHVXOWRI FRPSLODWLRQDQGFRQWDLQVWKHH[HFXWLRQSODQLWLVFDFKHGLQWKHVKDUHGSRRO(DFK VHVVLRQH[HFXWLQJWKHVWDWHPHQWKDVLWVSULYDWHFRS\RISHUH[HFXWLRQVWDWHOLNHWKH XVHUFXUVRUYDOXHVRIUXQWLPHYDULDEOHVHWF ,QWKHSDUVHVWHS VWHSPHQWLRQHGHDUOLHU 2UDFOHILUVWVHDUFKHVIRUDQH[LVWLQJ VKDUHGFXUVRUWKDWFDQEHVKDUHGE\WKHXVHUVHVVLRQ2UDFOHEUHDNVGRZQWKLV VHDUFKLQWRWZRVWHSVLQGH[LQJEDVHGRQWKH64/WH[WWRILQGFXUVRUVEXLOWIRUWKH VDPH64/WH[WDQGVHOHFWLQJWKHULJKWFXUVRUEDVHGRQRWKHUFULWHULDOLNHRSWLPL]HU PRGHVEDVHREMHFWVDFFHVVHGHWF,IDVKDUDEOHFXUVRULVIRXQGWKHQQR FRPSLODWLRQQHHGVWRKDSSHQDQGWKHSURFHVVLVFDOOHGDVRIWSDUVH(OVHDQHZ VKDUHGFXUVRULVEXLOWE\FRPSLOLQJWKH64/VWDWHPHQWDQGWKHSURFHVVLVFDOOHGD KDUGSDUVH :KHQPRVWRIWKHVWDWHPHQWVLVVXHGE\DQDSSOLFDWLRQFDQVKDUHWKHVDPHVHWRI FXUVRUVPRVWRIWKHSDUVHVEHFRPHVRIWSDUVHVDQGLPSURYHWKHGDWDEDVHVHUYHU FDSDFLW\WKURXJKSXW E\UHGXFLQJPHPRU\DQG&38XVDJH UHVSRQVHWLPH E\ UHGXFLQJWKHWLPHWDNHQE\WKHSDUVHSKDVH DQGVFDODELOLW\ E\UHGXFLQJODWFK FRQWHQWLRQ  Why cursors are not shared

$VVXPLQJWKDWRWKHUIDFWRUVOLNHFRQILJXUDEOHLQVWDQFHVHVVLRQWUDQVDFWLRQOHYHO SDUDPHWHUVDUHWKHVDPHFXUVRUVIRUWZRVWDWHPHQWV6DQG6FDQWKHRUHWLFDOO\EH VKDUHGLIWKH\SHUIRUPWKHVDPHRSHUDWLRQVRQWKHVDPHXQGHUO\LQJVHWRI URZVREMHFWVXVLQJWKHVDPHSODQ7KLVFDQEHYHU\KDUGDQGFRPSXWDWLRQ LQWHQVLYHWRILJXUHRXWSRWHQWLDOO\GHVWUR\LQJWKHEHQHILWVRIVKDULQJFXUVRUVLQWKH ILUVWSODFH+HQFH2UDFOH·VFXUVRUVKDULQJFULWHULDGRQ·WVKDUHFXUVRUVLQDOOWKH SRVVLEOHVFHQDULRVEXWWKH\DUHGHVLJQHGWREHHIILFLHQWZLWKRXWORVLQJRXWRQ PRVWRIWKHFRPPRQFDVHV8QWLOL5HOHDVHWZRVWDWHPHQWV6DQG6FRXOG VKDUHWKHVDPHFXUVRULIERWK6DQG6ZHUHWH[WXDOO\LGHQWLFDODQGDIHZRWKHU FRQGLWLRQVZHUHPHW DQ\REMHFWQDPHVLQWKHVWDWHPHQWVWUDQVODWHWRWKHVDPHEDVH REMHFWVRSWLPL]HUPRGHVIRUWKHVHVVLRQVLVVXLQJWKHVWDWHPHQWVPDWFKHWF 7KLVFDXVHVDFXUVRUVKDULQJSUREOHPZKHQDSSOLFDWLRQVXVHOLWHUDOVLQVWHDGRIELQG YDULDEOHVLQVWDWHPHQWV6XFKDSSOLFDWLRQVHQGXSSURGXFLQJVWDWHPHQWVWKDWGLIIHU LQVRPHRIWKHOLWHUDOVHYHQZKHQWKHUHVWRIWKHVWDWHPHQWWH[WLVLGHQWLFDO)RU H[DPSOHDQDSSOLFDWLRQWKDWGRHVQRWXVHELQGYDULDEOHVPLJKWLVVXHWKHIROORZLQJ WZRVWDWHPHQWVDWGLIIHUHQWWLPHVRUIURPGLIIHUHQWVHVVLRQV ,16(57,17279$/8(6 ·IRR· ,16(57,17279$/8(6 ·EDU·

6LQFHWKHWZRVWDWHPHQWVDUHQ·WWH[WXDOO\LGHQWLFDOWKH\HQGXSEXLOGLQJVHSDUDWH FXUVRUV 7KHUHDUHYDULRXVUHDVRQVZK\VRPHDSSOLFDWLRQVGRQ·WXVHELQGYDULDEOHV

%RRVW64/3HUIRUPDQFHZLWKFXUVRUBVKDULQJ3DJH

• LW·VMXVWHDVLHUWRZULWH64/VWDWHPHQWVZLWKOLWHUDOVHVSHFLDOO\ZLWKVRPH WRROV • ROGHU2UDFOHUHOHDVHVGLGQ·WVXSSRUWELQGYDULDEOHV DWOHDVWWKHUHZDVQR FXUVRUVKDULQJDGYDQWDJHWRXVLQJWKHPXQWLO2UDFOH DQGLWUHTXLUHVVRPH ZRUNWRUHWURILWELQGYDULDEOHVWRH[LVWLQJDSSOLFDWLRQV • DOOGDWDEDVHYHQGRUVGRQ·WVXSSRUWELQGYDULDEOHVRUHYHQLIWKH\GRWKH V\QWD[YDULHVKHQFHDSSOLFDWLRQVORVHLQWHURSHUDELOLW\ZLWKRWKHUGDWDEDVHVE\ XVLQJ2UDFOHRQO\V\QWD[IHDWXUHV • ,IDVWDWHPHQWXVHVELQGYDULDEOHVWKHQLWDOZD\VXVHVWKHVDPHSODQ7KLVFDQ EHDSUREOHPLIWKHRSWLPDOSODQVIRUGLIIHUHQWELQGYDOXHVFDQEHYHU\ GLIIHUHQW)RUH[DPSOHFRQVLGHUWKHIROORZLQJVWDWHPHQWV 6(/(&7 )52077:+(5( 71  $1' 71 71 6(/(&7 )52077:+(5( 71  $1' 71 71

7KHVHWZRVWDWHPHQWVFDQKDYHGLIIHUHQWRSWLPDOSODQVGHSHQGLQJRQWKH GLVWULEXWLRQRIYDOXHVLQWKHFROXPQ17KXVXVLQJDELQGYDULDEOHSURGXFLQJ 6(/(&7 )52077:+(5( 71 ; $1' 71 71

ZLOOFDXVHWKHSODQWREHVXERSWLPDOIRUVRPHYDOXHVRIWKHELQGYDULDEOH7KLVFDQ IRUFHDSSOLFDWLRQV HVSHFLDOO\LQD'66HQYLURQPHQW WRXVHOLWHUDOVLQVWHDGRIELQG YDULDEOHV CONCEPTS

7KLVVHFWLRQGHVFULEHVVRPHQHFHVVDU\FRQFHSWVEHIRUHJRLQJLQWRWKHVROXWLRQ Similar statements

$VHWRIVWDWHPHQWVZLOOEHFDOOHGVLPLODULIDQ\WZRVWDWHPHQWVLQWKHVHWGLIIHURQO\ LQWKHOLWHUDOV 7KLVLVDSXUHO\V\QWDFWLFFULWHULRQ ([DPSOH7KHIROORZLQJVWDWHPHQWVDUHVLPLODU ,16(57,17279$/8(6 ·IRR· ,16(57,17279$/8(6 ·EDU· ,16(57,17279$/8(6 ·DOSKD· ,16(57,17279$/8(6 ·NDSSD· Optimally sharable statements

6LPLODUVWDWHPHQWVPD\RUPD\QRWKDYHWKHVDPHH[HFXWLRQSODQV)RUH[DPSOH WKHIROORZLQJWZRVWDWHPHQWVZLOOKDYHWKHVDPHH[HFXWLRQSODQV ,16(57,17279$/8(6 ·IRR·

%RRVW64/3HUIRUPDQFHZLWKFXUVRUBVKDULQJ3DJH

,16(57,17279$/8(6 ·EDU·

6XFKVWDWHPHQWVZLOOEHFDOOHGRSWLPDOO\VKDUDEOHVWDWHPHQWVLQWKLVGRFXPHQW 7KXV 2SWLPDOO\VKDUDEOHVWDWHPHQWVDUHVLPLODUVWDWHPHQWVWKDWKDYHWKHVDPH RSWLPDOSODQ 7KLVDOVRLPSOLHVWKDWRSWLPDOO\VKDUDEOHVWDWHPHQWVFDQVKDUHWKHVDPHFXUVRU ZLWKRXWDQ\LPSDFWRQWKHH[HFXWLRQFRVWV Sub-optimally sharable statements

2QWKHRWKHUKDQGWKHIROORZLQJWZRVWDWHPHQWV 6(/(&7 )52077:+(5( 71  $1' 71 71 6(/(&7 )52077:+(5( 71  $1' 71 71

FDQKDYHGLIIHUHQWRSWLPDOSODQVGHSHQGLQJRQWKHURZVWKDWVDWLVI\ 1  DQG 1  WKHGLVWULEXWLRQRIYDOXHVLQFROXPQ1WKHDYDLODELOLW\RIDQLQGH[ RQ11RU1HWF)RULQVWDQFHWKHILUVWVWDWHPHQWPD\XVHDQLQGH[RQ7DQG WKHVHFRQGVWDWHPHQWPD\GRDIXOOWDEOHVFDQRQ72UWKHILUVWVWDWHPHQWPD\ GRDKDVKMRLQDQGWKHVHFRQGVWDWHPHQWPD\GRDQHVWHGORRSMRLQ6XFK VWDWHPHQWVZLOOEHUHIHUUHGWRDVVXERSWLPDOO\VKDUDEOHVWDWHPHQWV7KXV 6XERSWLPDOO\VKDUDEOHVWDWHPHQWVDUHVLPLODUVWDWHPHQWVWKDWFDQKDYH GLIIHUHQWRSWLPDOSODQV 7KLVDOVRLPSOLHVWKDWLIVXERSWLPDOO\VKDUDEOHVWDWHPHQWVVKDUHWKHVDPHFXUVRU WKHQWKHUHPD\EHDSHQDOW\LQWHUPVRIH[HFXWLRQFRVWV Optimally sharable vs. suboptimally sharable statements

7KHGLVWLQFWLRQEHWZHHQRSWLPDOO\VKDUDEOHDQGVXERSWLPDOO\VKDUDEOHVWDWHPHQWV LVQRWSXUHO\V\QWDFWLF,WGHSHQGVRQIDFWRUVOLNH • WKHSRVLWLRQRIOLWHUDOVLQWKHVWDWHPHQW HJLQWKH9$/8(6FODXVHRUWKH :+(5(FODXVH • WKHDFFHVVSDWKVDYDLODEOH HJSUHVHQFHRIDQLQGH[ • WKHGDWDGLVWULEXWLRQ VWDWLVWLFV DQGLWVDYDLODELOLW\LIDOLWHUDORFFXUVLQD SUHGLFDWHLQYROYLQJDFROXPQ HJ1 ZLWKFROXPQVWDWLVWLFVDYDLODEOH RQ1 • DOJRULWKPVXVHGE\WKHRSWLPL]HUWRH[SORLWOLWHUDOV HJFRQVWDQWIROGLQJRU SDUWLWLRQSUXQLQJ Non-sharable statements

7KHUHDUHFDVHVZKHUHVLPLODUVWDWHPHQWVFDQQRWVKDUHWKHVDPHFXUVRUEHFDXVH XVLQJWKHVDPHFXUVRUZRXOGSURGXFHLQFRUUHFWUHVXOWV7KHVHDUHVLPLODU

%RRVW64/3HUIRUPDQFHZLWKFXUVRUBVKDULQJ3DJH

VWDWHPHQWVWKDWPHDQGLIIHUHQWWKLQJVRUGRVRPHWKLQJYHU\GLIIHUHQWGXULQJ H[HFXWLRQ7KHIROORZLQJVWDWHPHQWVLOOXVWUDWHWKHSRLQW 6(/(&7 )520725'(5%