Kategoriler


SON YORUMLAR
atomparcacigi
Güzel ve bilgilendiren makaleler var çok beğendim. Ama yeni yazsanız daha iyi olur.
skynetademir@gmail.com
Her türlü C#, C++ ödevi yapılır.skynetademir@gmail.com
spiderman
tatar ramazan ODTÜ ve Sakarya mezunları süper ama İTÜ mezunlarını kapıdan içeri almıyorlar diyorsun ben de tam tersini biliyorum İTÜ mezunları mezun olmadan iş buluyor havada kapıyorlar OdTÜ ve sakarya mezunları iş arıyorlar sektörü bilmesek ?
Ömer karikutal
Php,mvc asp.net, c # ödevleriniz uygun fiyata yapılır. karikutalomer@gmail.com
Ercan Sezdi
Donanimsal ödevlerinizi de yapabilirim. Raspberry pi, Ardiuno, Msp430 donanimsal programlama yapabilirim. Programlama dilleri C++, Python, Assembly olabilir. Zorluk derecesine gore mobil uygulama da yazabilirim. Iletisim: ercansezdi007@gmail.com
Ercan Sezdi
Elektrik elektronik mühendisliği okuyorum. Pyhon ve C++ ödevleri yapabilirim. Iletisim: ercansezdi007@gmail.com
Senior Dotnet Developer
Merhaba arkadaslar, Yazilan yorumlari bikmadan usanmadan okudum. Ssagdan soldan duyacaklariniz yerine gercek hayat hikayesinden baslayayim. Elk elktrnk muhendisi olarak 7 yilda 2.2 ortalama Uldag unv den mezun oldum. Sene 2010. Askere gidip geldim.1 sene de bos bos kahvede okey oynayarak gecirdim :)) is aradimmi? Hayir. Nasilsa yillarca calisacagiz diyerek keyfime daha cok zaman ayirdim. Hafif bir giristen sonra hizli bir giris olsun. Aldigim maaslari yazayim heyecanli olsun:) 1. Firma :1250- 6 ay (asgari ucret:900) 2. Firma : 2500-10 ay 3. Firma : 3000-1 yil 4. Firma : 4000-10 ay 5. Firma : 6000- 18 ay 6.Firma : 9000+ istanbul ?? henuz baslamadim :) Bu kadar detayi verdim ki biraz motive olun. 7 yilda farkli muhendislikten gelen biri buraya gelebilirse calisan herkes icin bu sans var. Bu firmalardan son 3 tanesi hergun duydugunuz yerler. 2 kez de 2 farkli yerde terfi aldim. Herkesin girmeye can attigi iyi maas veren yerler. Cok da gozunuzde buyutmeyin. He soylemeyi unuttum java diil .net developer olarak calisiyorum. Bu maaslar ile cok javaciyi geciyorum. Piyasayi baya iyi tanidim.Maas skalalarini vs. Size tavsiyem her duydugunuza inanmayin. Yok pahasina calismayin, fazla da ucmayin hersey dozunda guzel. Kisacik bir detay daha. 2012 de istanbula ilk geldigimde 3 haftada 21 yer ile gorusmustum. Gecen ay 2 haftada 20 yer ile gorustum. Piyasa 2012 den beri acik. Torpilsiz sadece calisarak buralara geldim.Ise giremiosaniz cv nize bakan yoksa oturup dusunmekte fayda var. Birsryleri eksik yapiorsunuz belki de. Not ::::::: Gecenin 2sinde tum bunlari yazdim ki birilerinr faydam olsun. Ne yazikki her kafadan bi ses cikiyor guzelim Turkiyemde. Bilenler atanlar tutanlar bol bol. 70 den fazla yer ile gorustum buyuk kucuk. 50 tanesinden olumsuz donus yada hic donus olmamistir. Sonucta buralara gelebildim. Gelecek bilisimde. Motivasyonunuz hic kirilmasin. Kalin saglicakla.
Memet
Katılım ödevim var yardıma ihtiyacım var yardımcı olabilecek var mı
Halil
Tatar Ramazan
Bizim Sakarya üniversitesinden iyi yerlere gelen bir sürü adam var. Hatta ödevleri yapmayan tembel bilinen biri katılım bankasına girdi şimdi de Avustralyada programcılık yapıyor. Kurumsal firmalarda her üniversiteden eleman vardır zaten. Mesela Ford Otosan. Çok da para vermez hepsi. Memur maaşına çalışırsın. General Elektrik gibi yerler yüksek maaş verebilir. Ama oralara girmek zordur. İşi de zordur. Ben 2010 yılında KPDS İngilizceden 89 almıştım. Süper bilişim uzmanıyım. İyi öğretim almak, Üniversitede bol proje yapmak kişiyi 1-0 öne geçirir. Veya ortalamada yüksek puanlı, öğretimi iyi olan üniversite mezunları daha başarılı olabilir. İtirazım yok. Ama istisnalar da her zaman mevcuttur. Kocaelinin birincisi elbette yıldızın sonuncusundan daha başarılı olacaktır.
No One
Tatar, sen neye atarlanıyorsun? Boş işler dediğin bütün hayatını etkileyecek kariyer planın ve senin bütün hayatın. Herkes her yere gelemez, kimse kimseyi kandırmasın, en öncelikle de kendini kandırmasın. Verdiğin örnekler istatistik orsnında yüzde kaç acaba? Mesela anadolu okulundan mezun kaç kişi iyi şirketlerde çalışıyor, büyük çoğunluk iş bulamıyor kendi tanıdıklarım var, ben üzerine diyorumki iyi okuldakiler de her yerde istediği gibi bulamıyor, sen burada montajcılık yaparken amerikalısı avrupalısı senin kullandığın teknolojileri üretiyor, senin yaptığın mühendislik mi montajcılık mı şimdi? Tr de en iyi şirketlerde çalışan farklı 10 üzeründe onlarca kişiye sor bakalım neyin dizaynını neyin teknolojisini üretmişler? Söylediğin bakan ingilterede yaşıyorsa sterlin olarak maaş alır 70bin tl diyerek manipule etme 6 ya böl, 11 bin sterlin de, tr de veriyorlarsa kim kime o kadar parayı veeiyor kaç tane bölüm birincisi o parayı alıyor saçmalama lütfen. Ben diyorumki birincil hedef herşeyini kariyere odaklama veya tamamen boşa salma, herkes bir şekilde yaşıyor hayatını zaten ancak neyi istiyorsa ona çabalasın ama bazı şeyler olmuyorsa da hayatını mutsuz geçirme. Sen mesela bırak dünya işlerini ahiretini yaşa diyorsun, milyonluk girişimcilik yapsan ve işlerin tıkırında gitseydi ve birçok hayalini gerçekleştirseydin şu anda beyler şunu şunu yapın hayat çok güzel diyecektin, şimdi gelmiş hayat boş diyorsun, komik. Benim yazdıklarımdan herkes ne demek istediğimi anlamıştır zaten, bazı şeyleri görmek için 40 yaşına gelmeye gerek yok, çok fazla araştırıp çok fazla kişiye sorarsan ve işin içinde bizzat bulunursan görüyorsun zaten ki yazdıklarım çok az şey olmasına rağmen anlaşışır özet bilgiler, seversin kullanırsın, sevmezsin saygı duyar ve okumazsın bu kadar basit.
ali
amk bilgisayar mühendsiliği nerden seçtim seni mis gibi kolay bölümler varken çekilir dert değil...... tavsiye etmiyorum kardeşim.
Tatar Ramazan
No One bırak boş işleri başlarım kariyerine de üniversitesine de! Dünyada bir halt olmadığını anlayın işte. Ahirete yatırım önemli. Herkes bir şekilde yükseliyor ilerde zaten. ODTÜ mezununun 26 yaşında geldiği noktaya Sakarya mezunu 33 yaşında geliyor. Ortalamada ne kadar çalıştıysan hayat sana o kadar verir. Mesele Karadeniz Teknik Maliye bitiren biri vardı. 29 yaşında vergi denetmeni oldu. Ankara Siyasal bitirseydi 22 yaşında işe girerdi. Eski bakan Mehmet Şimşek bölüm birincisi oldu. İngilterede 70 bin lira maaş alıyordu. Her şey ve herkes derece derece.
No One
Yeni mezun olarak birkaç küçük şey yazmak istiyorum, kariyer net veya linkedin deki iş ilanlarına bakarsanız, özellikle yeni mezun olanlar için bile min 2 yıl deneyim ve birçok programlama dilleri vs isterler. 5 kişi işe alınacaktır, 500 kişi başvurur. Her yere gereksiz sayıda birçok üniversite açıldı, avrupanın en kaliteli üniversiteleri ingiltere ve almanyada bile max 50 civarı, bizde ise 150-200 arasında bunun siyasi bazı sebepleri var. Mesela siz her il e üniversite açarsanız, tüm ailelerin çocukları üniversite mezunu olacaktır, çocuk ve aile pskolojikmen rahatlar. Esnaf ise öğrencilerden ciddi gelir elde edecektir. Sorun ise bizim gibi ülkelerde bilim veya teknoloji geri plandadır ve iş istihdamı azdır, mesela 100 kişi işe alınacaktır ancak açılan birçok üniversite ile 1000 kişi mezun olur ve kalan 900 kişi işe giremez, bu sayı her yıl daha da artar ve işsizlik artar, insanlar da artık üniversite mezunu olma fark yapmıyor master yapayım, part time çalışayım der, zaten birçoğu çok kalitesiz eğitim alır ve giriş maaşları 1500-3000 arasında olur yılları işsizlik veya düşük maaşla geçirir. Kişi de sorunu kendisinde sanır, halbuki tüm suç sistemin böyle olmasını sağlayanlar, anca siz yıllar sonra para ve zaman kaybınızı anlarsınız, veya anlasanız bile elinizden çok fazla birşey gelmez. Peki şirketler insanları neye göre seçer, kendini geliştir denilen tavsiye ne kadar doğru? Arz-talep dengesini iyi analiz etmelisiniz, mesela şu anda çok fazla mezun var, ekonomik kriz dolayısı ile iyi okuldan mezunlar bile zannettiğiniz gibi hemen iş bulamıyor. Ya top 5 okul dan 3+gpa ile mezun olacaksınız, ya da torpiliniz olacak. Ben top 5 okuldan mezunum ve okulun zorluğundan dolayı mezun olan herkesin onlarca projesi, jaca, c, c++, python, matlab gibi dilleri, birçok farklı ideleri, oop, mvc, design pstterns, ve çok farklı çeşitte algoritma çeşitleri görmelerine ve ingilizce seviyesinin çok iyi olmalarına rağmen (toefl a girenelerin çoğu 80-100 arası) ve alese girenlerin çoğu 80-95 arası aldığını düşünürseniz, yine de işe girerken sizi beğenmezler, benim gördüğüm kadarıyla şirketlerin insan seçerken yaptıkarı sıralama şu şekilde, 1- okul ismi (boun, koç, itü, odtü, bilkent top 5, ytü, sabancı, tobb, hacettepe vs gibi ikincil seviye okullar, diğerleri daha geri planda, her şirketin kendince filtreleme sistemi var ve bazı okul mezunlarını asla almazlar) 2- gpa ortalama (kurumsal veya büyük şirketler savunma, telekom, banka vs hepsi önem verir, master yapmak istiyorsanız birinci kriterdir, küçük teknokent şirketlerinden de soran çok oluyor ben ve arkadaşlarıma staj için bile) 3- ingilizce (iyi okulların çoğunun ingilizce seviyesi upper dır, ingilizceniz yoksa bilgisayarcı sayılmazsınız) 4- yaptığınız projeler, staj, part time, iş deneyimi (bazı şirketler ilanlarda iyi yerde staj yapmış olma koşulu koyar, iş yaptığınız sektörde staj yapmanızı beklerler vs, 2017 den beri birçok şirket kurumsal ve normal hemen hemen hepsinde artık staj yapmak bile zordur, ya gpa 3+ olacak, ya da torpiliniz, top5 okuldaki ben ve birçok arkadaşım staj bulmada zorlandı, top5 te değilseniz part time veya normal iş tecrübesi sizi direk öne atar, iyi okuldakilerin çoğu derslerinde projeler çok ve zordur, o yüzden diğer okuldakilerin aradaki açığı iş tecrübesi ve hobby projelerle kapatması lazım) 5-referans (okuldaki hocanız veya staj, iş yerindeki mühendisin işe girerken size olumlu referans olması, şu anda yeni mezunlardan 2-3 tane referans istiyor birçok şirket 6-diğerleri, aklıma gelmeyen diğer işler, sosyal sorumluluk, klüp, sertifika, yarışma vs bunlara önem veren ik cı veya şirketler olabiliyor cv nin kenarında durması işe yarayabilir 0- torpil, çevreden veya akraba aile tanıdık ile torpiliniz var ise diğer herşeyden etkili hale gelip herkesin önüne geçebilirsiniz, batıda iş liyakat veya işi en iyi yapana verilir. Doğu toplumlarında ise iş güvenilir kişi ile yapılır, o yüzden tanıdıkları işe alırlar, şirket gizliliği ve güvenliği bazı şirketler için çok sıkıntılı olabiliyor vs, bu kozu olan çok fazla insan var piyasada, o yüzden siz bunlardan birisi değilseniz yukarıdaki beş maddenin hepsini yükseltmeye bakın. İyi okul hiçbirşey mi, veya herşey mi? Top5 ten gpa 2.0 - 2.5 arasında mezun olursanız biraz zor günler sizi bekliyor, master yapamazsınız, paranız yoksa yurt dışına gidemezsiniz, çok ağır ders ve projeler yaptınız ama okulu zor bitirdiniz ve dışarıdaki şirketler size çok önem vermeyebilir, iş bulurken ve bulduktan sonra da min 1 yıl falan zorluk çekersiniz, ilk başlarda iyi kurumsaldan başlamak zordur İyi okul mezunu Gpa 2.5-3.0 arası, savunmaya girmek zorlar, onun dışında bazı kurumsallara ilk başta giremezsiniz ama bazılarına girebilirsiniz, master içinde şartlar biraz zorlar İyi okul mezunu 3gpa+ ile master veya iş bulmak daha kolaydır ancak okuldaki zorluklardan sonra hiçbir zaman tatmin olamayabilirsin, çünkü hayat üniversitede zor projelerle uğraşırken kurduğun hayaller gibi değilmiş onu işe girince öğreniyorsun Diğer okullardan mezunlar, okulda gezip tozduysanız çok güzel, en güzel yıllarınız o yıllardı, zor okuldakiler kadar çalışmadınız ve gençliğiniz full çalışmayla geçmediyse iş hayatı ilk birkaç yıl zorlar, sonrasında kurumsal şirketlerin bazılarında hatta çoğunda devam edebilirsiniz belki (2-3 yıl sonra girenler var oran olarak bilmiyorum, bazı şirketlere çok zor) Yaş 28-30 üstü ise, srtık iş bulmak yeni mezun kadar zordur, çünkü maaş beklentisi fazla ancak şirketler siz ne kadar kaiteli olursanız olun sizden daha ucuza çalışacak birisini bulabiliyor, maaş zamları veya artışı düşük, tl nin alım gücü her seferinde düşüyor, kaygılar çocuk varsa dahada fazla Yurt dışına mastera gitsenizde, phd yapsanızda yaş ilerliyor, 30 una yaklaştığında hala öğrenci gibi takılmak zorunda olmak, avrupada 2-3-4 bin euro ya yaşamak, hangi ara evleneceksin, ev veya araba alacaksın, geri.dönecek misin, hayatın boyunca atomu mu parçalayacaksın? Tr dekiler en azından atom parçalamıyor Sonuçta top5 okuldan yeni mezun, tr de yine top şirketlerin birinde ben ve çoğu arkadaşım 3.5-4.5k ya başladık, savunmadakiler 5k üstü, ancak tavsiye verecek olursam, tünelin ucu bmbk bir yere çıkıyor. Hayatınızı doya doya yaşayın, çok zengin olmadığınız sürece para o kadar önemli değil, ben daha 22-25 yaşındayım (tam yaşım belli olmasın diye) ve umutsuzum bazı şeyler için, hayatınızı ev veya araba almaya mı harcamak istiyorsunuz, büyük şehirde zar zor yaşamaya mı? Öğrenciyken anlamanız pek mümkün değil kapitalist sistemin içine girip para kazanmaya başlayınca, insanların nasıl davrandıklarını çok daha net anlıyorsunuz, okuyun, gezin, eğlenin, anı yaşayın. Ne çok çalışın, ne de çok tembellik edin, herşeyi dozunda yaşayın. Daha çoook şey yazardım da boşver

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
STORED PROCEDURE'LERE NİÇİN İHTİYAÇ DUYARIZ?
Kredi Kartı Numarası Doğrulama- Lhun algoritması
Steve Jobs ve Türkiye...
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
Facebook'un yatırımcısı Türk girişimciler arıyor!
Çok okunan blog yazmanın 10 sırrı
Daha iyi kod için 12 adım - Joel Spolsky
YAZILIM BÜYÜKLÜK TAHMİNİ
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
JSP - MySQL Türkçe Dil Desteği
ASP.NET - Server Controls
Bilgisayar Mühendisleri Kaç Para Alır?
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
Bilgisayar Mühendisliğini yeni kazandım, neler yapmalıyım?
Patlak Mühendis olma ihtimaliniz ne?
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
Üniversite seçiminde şu 8 şeyi yapmayın!
Bilgisayar mühendisliğinde okuyan öğrencilere tavsiyeler
2016 ekonomik krizi
Para ile ödev yapmak üzerine

Bilgisayar Mühendisleri Portalı

STORED PROCEDURE'LERE NİÇİN İHTİYAÇ DUYARIZ?

STORED PROCEDURE'LERE NİÇİN İHTİYAÇ DUYARIZ?

Belki siz T-SQL kodlarınızı bir SQL Command objesi ile kullanmak için yazmışsınızdır. Bu yüzden hiç bunları business logic kodlarından ayrı bir yerde yazmayı düşünmemişsinizdir. Belki sizin, zaman geçtikçe yapısında değişikliklerin meydana geldiği karmaşık T-SQL procedurelerinizden oluşan uygulamalarınız olabilir. Stored procedureler size bu kodları enkapsüle ederek saklamak için gerekli bir yer sunar.

Çoğunuzun stored procedureler hakkında az da olsa bir bilgisi vardır diye düşünüyorum. Fakat yine de bunlar hakkında bilgisi olmayanlar için söylemek gerekirse ; stored procedure'ler databasede saklanan bir grup T-SQL komutlarından oluşur. Stored procedure'lere runtimeda parametre input'u yapabilirsiniz ve parametre ya da bir data output'u geri döndürebilirsiniz. Stored procedure ilk kez çağrıldığında derlenir. Bir işleyiş planı üretilir burada T-SQL olarak kodlanmış yapı SQL Server tarafından çalıştırılacak ve gerekli sonuçlar yine SQL Server tarafından üretilecektir. Bu işleyiş planı daha sonraki kullanımlar için memory'de cache edilecektir. Bu performansı artıracaktır. Çünkü SQL server tekrar T-SQL komutlarını analiz ederek gerekli işleyiş planını üretmek zorunda kalmayacaktır. Basit olarak cache edilmiş işleyiş planı kullanılacaktır. Peki bu işleyiş planı ne kadar süre ile cache edilir derseniz cevap olarak şunu söyleyebiliriz; birincisi SQL server tekrar re-start edilene kadar, ikincisi uzun  bir süre az kullanımdan dolayı yaşlanana(aging) kadar. İkincisini biraz açmak gerekirse hafıza yönetimin etkin kılınabilmesi için çeşitli algoritmalar işlemektedir. Bu algoritmalarda kullanılacak yöntemlerden birisi de en uzun süre referans verilmeyeni uygun şartlarda memory'den silmedir.

Performance

Cache edilmiş işleyiş planı performans açısından çok iyi olduğunu söylemiştik. Ancak SQL Server'ın son iki versiyonunda işleyiş planlarının bir stored procedure'den dolayı oluşup oluşmadığına bakılmaksızın tüm T-SQL komutları hafızada cache edilmektedir. Bu yüzden stored procedure'lerin bu noktada kazanmış olduğu performans avantajından söz etmek mümkün değildir. Herhangi bir statik sentaksta yazılmış T-SQL komut kümesi de, uzun bir süre referans verilmeyerek yaşlanma dışında, tamamen bir stored procedure'ün ortaya koyacağı performans ile aynı performansı sağlayacaktır. Yalnız burada statik olması önemlidir. Çünkü herhangi bir değişiklik, hatta bu değişiklik sadece bir comment bile olsa, hafızadaki cache edilen yapıyı bulmamızı engeller. Bu yüzden tekrar cache edilir.

Ancak stored procedure'ler yine de performans olarak önemli bir artısını network trafiğini azaltarak sağlar. Siz sadece EXECUTE stored_proc_name ifadesini hat üzerinden gönderirsiniz. Tamamen T-SQL komutları(bazı uygulamalarda bu komutlar oldukça yüklü olabilir) göndermek yerine bu daha performanslı olacaktır. İyi tasarlanmış bir stored procedure kullanımı client ile server arasındaki round triplerdeki trafiği bir fonksiyon çağırma gibi kullanım şeklinden dolayı azaltır.

Ek olarak,  RPC'ler ile server'daki stored stored procedure kullanımı, işleyiş planını tekrar kullanma şeklini geliştirmenize izin verir, bu yüzden performansınızı artırır. Stored procedure'lerin SQLCommand.CommandType'larından birisini kullanırsanız, stored procedure RPC aracılığıyla işletilir. RPC'nin serverdaki procedure'e parametre aktarımları ve çağrımlarını(calls) uygun bir şekilde yapması,  SQL Server'ın engine'inin gerekli işleyiş planını bulmasını ve gerekli parametreleri aktarmasını daha kolay yapmasını sağlayacaktır.

Stored procedure'leri kullanarak performans artırmak için düşünülecek son şeylerden birisi de acaba T-SQL dilinin tüm gücünden yararlanabiliyor muyuz sorusudur. Data ile ne yapmak istediğinizi düşünün.

» Set halinde işlemler mi yapıyorsunuz, ya da T-SQL dilinin iyi desteklediği diğer işlemleri mi yapıyorsunuz? Eğer burada bir query'yi satır içerisinde yazabiliyorsak, stored procedure kullanımı bizim için basit bir opsiyondan öteye gitmeyecektir.
» Satır tabanlı işlemler mi yoksa karmaşık string manipülasyonları mı yapıyorsunuz? En azından Yukon ve CLR entagrasyonu tamamlanana kadar bu işlemleri stored procedure yazmadan T-SQL'de gerçekleştirmeyi muhtemelen düşünebilirsin.

Bakım yapılabilirlik ve Özetlenebilirlik

İkinci potansiyel fayda olarak bakım yapılabilirliği düşünebiliriz. Mükemmel bir dünyada, veritabanı şemanız ve işlem kurallarınız hiç değişmez. Fakat gerçek dünyada böyle bir şeyden söz etmek mümkün değildir. Örneğin yeni oluşturduğunuz X, Y, Z tablolarınızı var olan bir stored procedure içerisinde sisteme entegre etmek, kod içerisinden sisteme entegre etmekten daha kolaydır. Stored procedure içerisinden bu işlemi gerçekleştirmak uygulamanız açısından transparent bir değişim olacaktır. Çünkü kodunuzu değiştirmek zorunda değilsiniz. Kodunuzun da bu değişiklikten haberdar olması gerekmemektedir. Ayrıca stored procedure'lerin güncellenmesi kod içerisinde güncelleme yapmaktan daha kolaydır. Çünkü daha az zaman alır. Ve projeyi tekrar derlemek, test etmek ve deploy etmek zorunda kalmazsınız.

Ayrıca bu stored procedure'lerin özetlenebilir* yani  tek bir yerde olup bir çok uygulama için kaynak teşkil etmesi sistemin tutarlılığı açısından çok önemlidir. Dolayısıyla sadece stored procedure içerisinde güncelleme  yapılırsa bunu kullanan bir takım uygulamalar için değişiklik yapmaya gerek kalmayacaktır.

Stored procedure kullanmanın diğer bir yararı da daha iyi versiyon kontrolü(değişim kontrolü) yapılabilmeyi sağlamasıdır. Normal olarak kodlardaki versiyonlar gibi stored procedure yapıları için de aynı şekilde versiyonlar tutabilirsiniz. MS Visual Source Safe ya da diğer kaynak kontrolü araçları ile istenilen stored procedure versiyonlarına dönüşüm, geri alma sağlanabilir.

Ancak yine de stored procedure kullanmak sizi tamamen tüm değişklikleri kolay bir şekilde, tek bir yerden yani stored procedure içerisinden yapmayı sağlamaz. Eğer değişiklikler parametrelerde ve geri dönüş değerlerinde meydana gelirse kodunuzu güncellemek zorunda kalırsınız.

Diğer bir mesele de stored procedure kullanmak taşınabilirliği sınırlandırmaktadır. Çünkü sizin muhatabınız sadece SQL Server olmayabilir. Eğer uygulmanız açısından taşınabilirlik önemli ise bunu stored procedure'lü bir yapıda kurmamanız gerekir. Sizin ek bir efor sarfederek kendi veri erişim katmanınızı* doğal RDBMS'e göre implement etmeniz gerekir.

Güvenlik

Güvenlik noktasında stored procedure'lerin size ne kazandırıp ne kazandırmayacağını düşünmeniz gerekir.

Stored procedure üzerinde gerekli güvenlik ayarlarını yaparak hangi sp'ün hangi kimse ya da kimseler için kullanılabileceğini belirtebilirsiniz. (Çevirmen notu; stored procedure'e bundan sonra kısaca sp diyelim) Sp'ler aynı sql server'ın view'ları gibidir. Tek bir farkları vardır. Sp'ler çalıştıklarında kullanıcılardan alacakları parametrelere göre sunacakları değerleri dinamik olarak değiştirebilirken view'lar hep aynı sonucu geri döndürürler ve parametre girişi kabul etmezler.

SP'ler kod güvenliğini artırır. Sql injection ataklarına karşı sistemi korurlar. Ayrıca sp'ler içlerindeki implementasyonu gizleyerek belli bir güvenlik sağlamış olurlar.

SP'lerde parametre tanımlarken  ado.net'in SqlParameter classını kullanarak tanımlama gerçekleştirebilirsiniz. Bu size kullanıcı tanımlı değerlerin geçerliliğini test etmenizde yardım sağlar. Kısaca sp'ler parametre kullanırken sizi istenilen parametre tipini kullanmanız konusunda sınırlandırır. Biliyorsunuz normal query yaparken böyle bir sınırınız yoktur.

Sp'lerde güvenlik yönüyle yine de zayıf noktalar ortaya çıkabilir. SQL server'da gerekli güvenlik ayarlarının yapılamamış olması veya kötü yapılmış olması istenmeyen kullanıcıların bu sp'leri çalıştırmasını sağlayabilir. Aynı şekilde giriş parametreleri bir şekilde ayarlanarak yine sql injection saldırıları gerçekleştirilebilir.

Data tiplerinin geçerliliğini sağlamak için kullandığımız parametreler tamamen doğru bir iş yaptığımızı kanıtlamaz. Bizim aptalca yapacağımız hatalar nedeniyle de parametre tipleri istenilenin dışında sisteme giriş olarak verilebilir. Bu yüzden mutlaka sp'lere parametre göndermeden daha önce bunların geçerli olup olmadığı kontrol edilmelidir. Bütün yük sp'lere bırakılmamalıdır.

Stored Procedure'ler benim için gerekli bir yapı mıdır?

Evet, belki. Tekrar sp'leri özetleyelim.

» Network trafiğini azaltarak performansı artırır.
» Tek bir noktadan bakım yapılabilmeyi sağlar.
» Birçok uygulamanın aynı sp'yi çalıştırmasıyla güvenlik ve tutarlılık daha iyi kontrol edilir.
» Bazı saldırıların etksini azaltarak güvenlik yönüyle iyileşme sağlar.
» İşleyiş planının tekrar kullanılmasına olanak verir.

Eğer uygulamanız açısından yukarıda bahsedilen özellikler önemli ise sp kullanmanızı şiddetle öneririm. Uygulamanız için datayı kullanma olanağınızı önemli ölçüde geliştirir. Ancak diğer yandan, eğer uygulamanız açısından taşınabilirlik önemli ise ve T-SQL dışı çalışmalar çoksa ya da sürekli database değişimi gerçekleşiyorsa diğer alternatifleri denemelisiniz.

Diğer bir önemli nokta da sizin T-SQL dilinde ne kadar uzman olduğunuzdur. Oldukça iyi bir tecrübeniz var mı yoksa sadece öğrenmeyi mi istiyorsunuz? Alternatif olarak,  sizin sp'leri yazacak bir DBAiniz var mı? Ne kadar iyi T-SQL bilirseniz, o kadar iyi sp yazarsınız ve daha az bakım yaparsınız. Örneğin, T-SQL satır tabanlı işlemlerden daha çok grup tabanlı işlemler için kullanılır. Eğer T-SQL dilini bilmiyorsanız, bunu öğrenme fırsatını kaçırmayın. Çünkü bu bilgi, sp kullanmasanız bile, kodunuzun gelişimini sağlar.

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın

mühendis(16.10.2014 13:44:36)
kk. Sql injection ataklarına karşı sistemi korurlar.bb


Hayır Korumazlar
%0 %0 %100
Katılıyorum Çekimserim Katılmıyorum



Yakup(22.10.2009 10:15:47)
Tam Değil Eksiklikler Var Mesela SP ile nasıl VB.NET Arasında Nasıl bağlantı kurarız Bunun Anlatılması Olsaydı

Çok Yararlı Olurdu
%12 %9 %79
Katılıyorum Çekimserim Katılmıyorum






Copyright© 2001-2018. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.