આશા છે કે આ આર્ટીકલ તમારા ૨ પ્રશ્ન નો ઉત્તર આપી શકશે:
૧. કયા ડેટાટાઈપ યુઝ કરવા ?
૨. વેરકેર અને એનવેરકેર માં શું તફાવત છે?
એસ.કયું.એલ સર્વર પર લખાયેલ સર્વપ્રથમ ગુજરાતી બ્લોગ. Ist ever SQL Server blog written in Gujarati
તો હવે આપણે જાણીએ છે કે "ટ્રનઝેક્શન લોગ" નું મહત્વ શું છે અને તે શું કરે છે, હવે જાણીએ કે તે ફૂલ શા માટે થાય છે અને કઈ રીતે એને અટકાવી શકાય.
"ટ્રનઝેક્શન લોગ ફૂલ થાય જવાના કારણ અને એના ઉપાય"
૧ "ટ્રનઝેક્શન કમિટેડ નથી"
-> એપ્લીકેશન કોડીંગ કરતી વખતે એ વાત નું ખાસ ધ્યાન રાખો કે દરેક "ટ્રનઝેક્શન" ને તમે બીગીન અને કમીટ માં આવરી લો। આમ કરવાથી તમારા દરેક "ટ્રનઝેક્શન" કમીટ થશે અને "કન્સીસટંત" રહેશે, અને તમને "બ્લોકીંગ" ની મુસીબત થી પણ છુટકારો મળશે
૨. "ટ્રનઝેક્શન ઓપન નથી પણ લાંબા સમય થી એક્ટીવ છે"
--> આ એવા ટ્રનઝેક્શન છે કે, જયારે યુઝર કોઈ ક્વેરી કરી રહ્યો હતો અને કોઈ કારણવશ એનું કમ્પ્યુટર હેંગ થઇ ગયું અથવાતો રીબુટ કે શટડાઉન થઇ ગયું હોઈ અને નેટવર્ક આ માહિતી એસ કયું એલ સર્વર ને પહોચાડી શકતું નથી જેથી ડેટાબેઝ સર્વર એવું સમજે છે કે "ટ્રનઝેક્શન ઓપન નથી પણ લાંબા સમય થી એક્ટીવ છે" આવા પ્રકાર ના સેશન ડીબીસીસી ઈનપુટબફર(એસ્પિઆઇડિ) થી કિલ કરી શકાય છે પરંતુ સાવચેતી થી કેમકે ઘણી વખત આ પ્રોસેસ ૪ ગણો સમય લે છે ખાસ કરી ને જ્યારે રોલબેક થાય છે. કિલ કમાંડ કેવી રીતે કામ કરે છે તે જાણ વા માટે વાંચો
૩. "ઇન્ડેક્ષ્ ક્રિએટ કરતી વખતે કે મોડીફાઇ કરતી વખતે"
--> મારા મત મુજબ આ સૌથી અગત્ય નો મુદ્દો છે; ઇન્ડેક્ષ્ ક્રિએટ કરતી વખતે કે મોડીફાઇ કરતી વખતે ખાસ ધ્યાન રાખો કારણકે આ ઓપરેશન ફુલ્લી લોગ્ડ છે અને ૧૫૦% જગ્યા હોવી જરૂરી છે દાખલા તરીકે જો તમારા ટેબલ ની સાઈઝ ૧ જીબી છે તો તમારી પાસે ૧.૫ જીબી જગ્યા ફ્રિ હોવી જરૂરી છે. તદુપરાંત, જયારે પણ તમે ડીબીસીસી ડીબીરીઇન્ડેક્ષ્ એક્ઝીક્યુંટ કરો છો ત્યારે એ ઇન્ડેક્ષ્ ને ડ્રોપ કરી ને રીક્રીએટ કરે છે* (જો તમે ઇન્ડેક્ષ્ નું નામ નથી આપતા તો આ ટેબલ ના બધાજ ઇન્ડેક્ષ્ પર આ ઓપરેશન થશે). હું એવી સલાહ આપીશ કે તમે જયારે રીઇન્ડેક્ષ્ કરવાના હોઉં તે પહેલા ડીબીસીસી શોકોન્તીગ અથવા તો સીસ.ડીમ_ડીબી_ઇન્ડેક્ષ્_ફીઝીકલ_સ્ટેટસ નું આઉટપુટ વાંચો અને આ માહિતી ના આધારે ઇન્ડેક્ષ્ રીક્રિએટ અથવા તો ડીબીરીઇન્ડેક્ષ્ કરો.
૪. "બલ્ક ઓપરેશન"
--> બલ્ક ઓપરેશન લોગ્ડ ઓપરેશન હોવાના કારણે લોગ ફાઈલ ની સાઈઝ વધે છે, માટે જયારે પણ બલ્ક ઓપરેશન કરો ત્યારે તમે આ નાના ચંક માં કરી શકો તો ઘણું સારું.
૫. "ઓટો ગ્રોથ"
--> ઓટો ગ્રોથ ઓપ્શન જો કાળજી પૂર્વક કન્ફિગર કરવામાં નહી આવ્યું હોય તો આ ખરેખર એક મોટી મુશ્કેલી છે કેમકે જો ડેટાબેઝ સાઈઝ હ્યુજ હોઈ જેમકે ૧૦૦+ગીગ્સ અથવા વધારે હોઈ અને જો તમે ઓટો ગ્રોથ ઓપ્શન % માં રાખ્યું હોઈ તો તમે તમરી ડિસ્ક આઈ/ઓ વધી જશે અને પરફોર્મન્સ માં નોંધપાત્ર ઘટાડો વર્તાશે, વધુ અહી વાંચો
૬. "ગ્રુપ બાય અથવા ઓર્ડર બાય "
--> આપને બધાજ જાણીએ છે કે ગ્રુપ બાય અથવા ઓર્ડર બાય રીઝુલ્ત ને રિસોર્ટ કરે છે જે અને આ માટે પણ જગ્યા રોકાય છે અને માટે જો અનિવાર્ય હોય તો j ગ્રુપ બાય અથવા ઓર્ડર બાય નો ઉપયોગ કરો
૭. " ટ્રનઝેક્શન રેપ્લીકેશન"
--> જો તમે ટ્રનઝેક્શન રેપ્લીકેશન ક્ન્ફીગર કર્યું હોઈ અને કોઈ કારણવશ અમુક ટ્રનઝેક્શન કે જે રેપ્લીકેશન માટે માર્ક છે પણ રેપ્લીકેટ નથી થયા તે બધા જ તમારા ટ્રનઝેક્શન લોગ માં હોઈ છે અને જગ્યા રોકે છે, માટે ટ્રનઝેક્શન રેપ્લીકેશન મોનીટર ઓપન કરો અને રેપ્લીકેશન સિંક કરો.
૮. "ટ્રનઝેક્શન લોગ બેકઅપ નથી થયું"
--> ટ્રનઝેક્શન લોગ બેકઅપ એ સૌથી અસરકારક ઉપાય છે કે જે ટ્રનઝેક્શન લોગ ને શેપ માં રાખે છે દાખલા તરીકે દર ૧૫ મિનીટ બાદ ટ્રનઝેક્શન લોગ બેકઅપ શીડ્યુલ કરો.
સાર: ટ્રનઝેક્શન લોગ, દરેક ટ્રનઝેક્શન ને લોગ કરે છે અને જો તમે તમારા ડેટાબેઝ ને ફૂલ રીકવરી મોડ માં રાખ્યો હોઈ તો ટ્રનઝેક્શન લોગ ફૂલ થઇ જવાની શક્યતા ઘણી વધુ છે, માટે હમેશા ટ્રનઝેક્શન લોગ બેકઅપ શેડ્યુલ કરો.
અંગ્રેજી વર્ઝન: http://www.sql-server-citation.com/2009/08/how-to-get-rid-off-from-transaction-log.html