SQL Server Indonesia User Groups Community Sudahkan anda menggunakan Store Procedure ? - SQL Server Geeks
Welcome to SQL Server User Group Indonesia
Sign in JoinHelp | Sign In Live ID

SQL Server Geeks

I am not SQL Addicted , but I am SQL Geeks

Sudahkan anda menggunakan Store Procedure ?

 Pertanyaan dari judul ini sangat menantang khususnya bagi orang orang yang selama ini menganggap remeh store procedure dan mengganggap logic itu cukup kita simpan di coding yang kita buat.

 

Ada beberapa hal yang perlu diperhatikan khususnya mengenai begitu pentingnya SP ini sehingga tidak dapat diabaikan dalam hal proses pembuatan sebuah aplikasi yang berhubungan dengan database.

 

Dari kegunaanya kita bisa melihat ada beberapa hal yang menjadi nilai utama dari penggunaan SP dalam membuat aplikasi khususnya yang berinteraksi dengan data base. adapun kegunaan dari Store procedure adalah:

-         Perubahan logic yang dilakukan dapat dilakukan dengan dampak sekecil kecilnya karena semua logic disimpan secara sentralized di server

-         Logic disimpan di server sehingga operasi yang memerlukan roundtrips antara server dan client dapat diminimasi.

-         Semua plans yang di compile disimpan didalam cache, secara default setiap store procedure plans akan dicompile dan di simpan kedalam cache pada saat pertama kali Store procedure tersebut exekusi. Oleh karenanya plan sendiri tidak langsung terbentuk ketika sebuah store procedure di buat atau disimpan di dalam cache secara permanen. Ada beberapa hal yang menyebabkan sebuah plan hilang dari cachenya. Penyebab itu diantaranya :

o       Server restart

o       Tidak cukupnya memory untuk menyimpan cache.

o       Dihilangkan dari cache dengan cara :

§         Melakukan pemanggilan  DBCC FREEPROCCACHE untuk melakukan kill terhadap semua plans dari cache.

§         Data yang digunakan oleh store procedure berubah sehingga yang beribah sehingga statistic dari data tersebut tidak dapat divalidasi yang tentunya berakibat pada plan yang digunakan oleh store procedure tersebut menjadi invalid.

§         Melakukan pemanggilan sp_recompile pada object yang digunakan oleh store procedure tersebut, sehingga ketika kita melakukan sp_recompile TobjectName  maka semua store procedure plan yang terlibat dengan object Tobjectname akan mengalami invalidate.

 

Sedangkan advantages lain dalam hal penggunaan SP dibandingkan kita menggunakan TSQL statement dan query biasa adalah dalam hal pengaturan security dari store procedure yang diantaranya adalah:

-         Penggunaan Store procedure akan lebih aman dan lebih mudah untuk di manage khususnya dalam pengaturan permission dari user terhadap store procedure tersebut.

-         Jika seorang owner dari table membuat sebuah store procedure yang aksesnya dilakukan berdasarkan table tersebut, maka si owner tadi dapat mengatur pemberiaan akses terhadap store procedure tersebut tanpa perlu memberikan hak akses terhadap table yang dia miliki. Bayangkan kekacauan yang akan terjadi jika seseorang melakukan intruksi delete menggunakan tsql seperti ini DELETE Sales WHERE invnum = 1234, dibandingan dengan intruksi DELETE Sales tentunya sang dba dan ownerlah yang akan mengalami masalah. maka dengan Store procedure kita bisa mengurangi resiko yang akan terjadi oleh user yang tidak berhak mengakses table yang bersangkutan.

-         Keamanan lain dari yang bisa dilakukan oleh stro procedure adalah keamanan dalam hal gangguan hacker berupa SQL injection yang artinya dengan store procedure user akan dibatasi proses interaksi datanya dengan system hanya berupa pengiriman data lewat parameter.

 

selain itu dalam hal performance penggunaan SP akan semakin meningkatkan performa dari aplikasi yang kita miliki dibandingkan dengan menggunakan TSQL statement biasa dari aplikasi. karena SP memiliki kemampuan untuk melakukan caching terhadap SP yang dibuat sehingga execution timenya lebih cepat. untuk masalah penggunaan caching dan process recompile dari SP akan saya bahas pada artikel selanjutnya dari artikel ini.