Kategoriler


SON YORUMLAR
Ercan Sezdi
Elektrik elektronik mühendisliği son sınıf öğrencisiyim. Python, C++ ve Matlab ödevlerinizi, Python bitirme projelerinizi makul ücretler karşılığında yapabilirim. İletişim:ercansezdizero@gmail.com
instagram @odevyapan
ödev yapmak ve yaptırmak isteyenleri instagram @odevyapan sayfasına bekliyoruz
Tuna Ünsal
java c# Python linux ödevleri uygun fiyata yapılır. iletişim: tunahan.unsal@ogr.deu.edu.tr
Yabancı
Ayrıca siz ömür boyu arkadaşlıklar yapacağınız insanların bilgisayar mühendisi olmasını mı istersiniz yoksa kursa gitmiş lise mezunlarını mı tercih edersiniz. Eğer bilg. mühendisliği okursanız arkadaşlarınız daha kaliteli olcaktır bunu unutmayın Dostum bende lise mezunu birisiyim.ve deli gibi kitap okurum web tasarımla ilgili kurslarda alıyorum..ve yazdıklarına baştan bakmama rağmen anlamlaramadım.insanları ünvanlarına göre yargılamayın.eğer öğrenmeyi bilirsen kendi öğretmenin olabilirsin.kendınızı şu ünvanlara bağlı kılmayın toplumun dışına çıkın öz farkındalığınızı görün.Dünayayı değiştirecek hayalleriniz yoksa okumanız sadece iyi bir gelirin dışına çıkmayacaktır.
işsiz
bilgisayar mühendisi şu amk asp.net te şu get ile id i almayı bi öğrenemedim sikim böle işi php en iyisi better then
Ali yıldırım
Merhaba arkadaşlar c,c++,java,c#,php ödevlerinize uygun ücret ile yardim edebilirim iletisim=ali.yildirim.94@hotmail.com
Zekeriya
Microsoft ne iş yaparak bu kadar parayı kazanıyor?Sadece işletim sistemi ve ofisten bu kadar para gelir mi?118 bin çalışanı olupta neden bu kadar az yazılım yapıyor?Örnek grafik,animasyon,veri kurtarma,oyun vesaire.Bana kalırsa bir işletim sistemi bir çok işi kendi yapar.Dışarıdan herhengi uygulamaya ihtiyaç duymaz.Biz hala dışardan winrar yüklüyoruz.Neden işletim sitemini ve ofisi geliştirmiyor?Neden telefon piyasasına girmiyor?Ama kendi orjinelliğiyle,kendi anlayışıyla.Android veya ios.a yazılım yazmak zorlarına gitmiyor mu?Kendileri yazılmcı iken başkalarının yazdığı yazılımı kullanmaktan rahatsız olmuyorlar mı?Mesala o öyle mi yapılır?Şöyle bir özellikte olsaydı demiyorlar mı?Bahsettikleri çalışanların çoğu (72 bini) dışarda insan kaynaklarıyla uğraşıyorlar anladığım kadarıyla.Merkezdeki çalışan sayısı az.Güzel yazılımlar bekliyoruz.
Tutku
Teşekkürler sayende hayallerim yıkılmadı herkes diyordu meslek yok şu yok bu yok diye gerçeği söylediğin için teşekkürler b///k
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaan8792 adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
Ercan Sezdi
Elektrik elektronik mühendisliği okuyorum. Python ve C++ ödevlerinizi, python bitirme projelerinizi makul ücretler karşılığında yapabilirim. İletişim:ercansezdizero@gmail.com
Tatar Ramazan
Bırakın bu saçmalıkları ahirete çalışın. Özel sektörde namaz bile kılamazsınız. 3 günlük dünya için uğraş dur. Boş işler. Ben 22 yıl eve kapandım çalıştım 11 yaşından beri. İş dünyası ve kızlar yüzüme bile bakmadı. Mezunlar yoğun rekabet içinde kıvranıyor. Maaşlı eleman olmak için çırpınıyorlar. En zor işi yaptıracaklar size. Diğer taraftan bir sürü kişi kolay iş yaparak mercedese biniyor. Adam din kültürü öğretmeni oldu. Verdiğim emeğin çok daha azını verdi. Manken gibi de karı aldı. Biz ortada kaldık. Kemalizm boş vaadler sunuyor size. Laik kapitalist firmalar çoğunuza köpek gibi davranacak. Atatürkçü anne babalarınız ve öğretmenleriniz ahiretinizi düşünmüyor. Gaflet ve dalalet içinde yaşıyorsunuz. Ölünce çarpılırsınız. Bir sabah namazı özelde 20 bin maaş almaktan daha hayırlıdır. Çünkü ahiret sonsuzdur.
ismet
10. madde ne zamana gelir bekliyorum.
Tatar Ramazan
Bu iş zordur. Yüksek kapasite gerekir. Bazı firmalar ALES 85 olsa iyi olur diye ilanda yazar (would be an asset). İyi para kazanan, iyi kariyer yapanların çoğu ilk 5 bine girmiş adamlardır. Ben 16500.üncü olmuştum. Bizim bölümün birincisi bile öyle havada kapılmadı. Benimle aynı yerde sayılır konum ve para olarak. Çoğunuz en fazla bir kurumsal firmada vasat bir maaşa çalışırsınız. O da iyiyseniz. Ne Devlet ne de özel size iyi para vermek istemeyecek. Yoğun rekabet var. KPSS lisans çok zorlaştı. 2006-2008 arası sorularda 85-90 yapardım. Şimdi 75 puanı geçemiyoruz. Bu durumda çoğu özel firma tabii ki yüksek maaş vermez muhtaçsınız onlara diye. Mesleğin ve sektörün sıkıntılı taraflarını yazdım 20 madde çıktı. Yazılımcı olacaksanız bari javacı olun. Microsoft devamlı yeni teknoloji çıkarıyor. 3 senede eskirsiniz. Javada rakip daha az. 10 yıl deneyimliyim. 8 bin maaşa bile devlete giremiyorum bilişim uzmanı olarak. Site sahibi yazmış "Ayrıca 10 yıllık tecrübelere sahipseniz genellikle şirketler size çok yüksek maaşlar yerine hisse yada kar payı önermeye başlayacaklardır." He he öyledir(!..) Ben Ankarada özelden bizim kuruma kaçan 5-10 yıl deneyimli 10 kişi gördüm. 10 yıl deneyimli bilişim uzmanı aldık. Zavallı adama 3 kat maaş vermeleri gerekirken 2 kat olarak aldılar (5 yıl ve üstü deneyimde 3 kat brüt ücret veriliyor normalde). Her yer en iyi adama en az para vermeye çalışıyor. Hayattan adalet beklemeyin. Ben 10 yıldır milyar dolarlık zenginler gibi çalıştım yer yer. 10 tane teknolojiyi A dan Z ye öğrendim. Binlerce sorun çözdüm kod yazdım. Sonra MVC-Core modası çıktı. İş dünyası beni anında deliğe süpürdü. Memurluktan istifamı versem aç kalırım aç. Daha yükselmem gerekirken, çok iyi paralar kazanmam gerekirken düştüğümüz hale bak. Verdiğim emeğin onda birini vermeyenler benden çok daha iyi hayat yaşadılar ve de yaşamaya devam ediyorlar. Mesela adam mesleki ve İngilizce bilgisi olarak boş tenekeydi. Yurtdışına gidiyor devamlı. 1 sene kalıyor. Her gidişinde 10 tane ülke dolaşıyor. Ticaret yapıp yolunu buluyor. Ben size çalışmayın demiyorum. Hiçbiriniz başarılı, mutlu olamazsınız demiyorum. Umudunuzu koruyun. Bir kısmınız iyi yerlere gelecektir tabii ki. Ama önemli bir bölümünüz aradığını bulamayacak. Belediyeye bile almayacaklar. Çalışmazsanız toplum sizi suçlar. Çalışın ki en azından ben çalıştım ne yapayım meslek fos çıktı dersiniz. İnsanlar zalimdir. Cahildirler. Halden anlamazlar. Kıytırık harita mühendisi torpille Belediyeye girer. Onu adam görürler görüntüsü boyu da varsa. Sen çok daha kalitelisindir ama işsiz kalsan sana saldırılar. Düz mantıkla hareket ederler. İnce düşünemezler. Site sahibi para kazanamamaktan değil saygı kazanamamaktan korkun diyor. Şunu belirteyim ki: İş dünyası size köpek gibi davranacak. Toplum size saygı bile duymayacak. Kız da vermeyecekler. Verecek kızları yok zaten. Hepsinin sevgilisi var. Mezun olunca az sövün lan. Yazıktır. Milletin anası, karısı, bacısı var. Sizdeki de iyi cesaret haa! Derece yapanlar mühendislikten kaçıp Tıbbı yazıyor. Siz cesur davrandınız bu hengameye soktunuz kendinizi. %10-15 iniz yolunu bulur. Diğerleriniz için El-Faaaaaatiha!...Bilişim çağı, geleceğin mesleği de iyi keklemişler sizi. Doğrudur her şey yazılımla oluyor. Yapılacak daha çok yazılım var. Çok yazılım talebi var. Ama iyi para kazanıp bi bok olamıyorsun ki. Sen bir bankaya başvuruyorsun senin gibi 3000 kişi de saldırıyor. Benim gibi memur (kariyer uzmanız biz mühendisin bir üstü) olan arkadaş 7600 TL maaş alıyor. İstanbulda 6000 TL ye 6 yıl deneyimli adam çalıştırıyorlar. 2 çocuklu aile ancak geçinir. Sadece araba masrafları bir ton tutuyor. Hayat zor. Bu maaşları yüksek zannetmeyin. Mesleğin ve sektörün sıkıntılarını yazayım mı? Yok boooluum bunalıma girmeyin şimdi. Sonra yazarız. Realist olun. Kendinizi kandırmayın. Genetik-yaratılış olarak kime benzediğinizi tespit edin. Kaderiniz, eşiniz ve hayattaki başarınız ona benzeyecektir. Sistem okullarda insanlara boş hayaller sunuyor. Çoğunluk avucunu yalıyor. Kendilerini kandırıp 35-40 yaşına kadar iyi iş, iyi eş arıyorlar. Bulacak olan hemen bulur iyisini. 1 yılda olmuyorsa 10 senede de olmaz. Karşınıza çıkan işi ve eş adayını reddetmeyin. Daha iyisini beklemek sadece zaman kaybı. Daha kötüsü gelir. Zaman geçtikten sonra değil şimdi akıllanın. Tecrübe konuşuyor burda. İyi kıvranmalar...
cöp
robot yazmis bak authorize yapmamissin patlatmis

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:
Oracle - Indexler Hakkında detaylı bilgi
Transact-SQL - T-SQL - SQL NEDİR?
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
Soru sormayı bilmek?
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
Oracle Performanslı Index Kullanımı
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
Bir bakışta Java ve C# karşılaştırması
Bir bilgisayar mühendisinin bilmesi gereken en temel teknolojiler
Newsweek - Top 500 Universities
Beryl Projesi - Grafiksel işlemleri neden ekran kartı varken işlemci yüklensin ki?
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
Sanal Bellek Nedir?
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
Linux altında MSN Messenger Kullanımı - pidgin
İyi bir yazılımcı olmak için yapılması gerekenler
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
DAYINIZ YOK MU?
Bilgisayar Mühendisi olacaklara üniversite seçme rehberi?

Bilgisayar Mühendisleri Portalı

Oracle - Indexler Hakkında detaylı bilgi

Yapılan bir sorguda istediğimiz koşullardaki verileri en kısa zamanda elde etmek isteriz.Bunu sağlamanın yollarına “Access path”  adı veriliyor.Bunların başında da belki de en çok bilineni ve genellikle de en etkili olanı indekslerdir.Oracle’ın her yeni sürümünde farklı indeks yapıları ile karşılaşmak mümkün.Mesela bitmap indeksler ile fonksiyon bazlı(function-based index) indeksler örnek olarak söylenebilir.Burada bu konulara girilmeyecek sık kullanılan indekslerin “genel” özelliklerinden kısaca bahsedilecektir.

NOT : Indeksler sorgularda genellikle kurtarıcı ya da en etklili yol olarak bilinse de uygun kullanılmadıklarında hepimizin gözünü korkutan –ki  her zaman böyle değildir- tüm tablonun taranması(Full Table Scan) işleminden daha çok zaman aldığı durumlar olabilmektedir.

Şimdi kısaca indekslere bir göz atalım : Indeks kullanımını anlamak için önce B*Tree yapısı hakkında bilgi sahibi olmakta fayda var.

btreeB*Tree yapısında 3 farklı seviyeden bahsedilir.Bunların ilki en tepede duran “Root”’tur.En altta da “leaf” denilen seviye ve bu ikisi arasında da “branch” (lar) bulunur.Örneğin “root” değerimiz 50 olsun.Bundan küçükleri sola , büyükleri sağa , branch tada boyle bir ayrım yaptıgımzı düşünerek yeniden bir dallanma gerçekleştirdiğimizde (leaf) , kabaca bir B Tree oluşturmuş oluruz.(Bu yapının etkili kullanımı için dengeli bir yapıda tutulması gerekmektedir.Yani veriler bir tarafa dogru yığılma yapmamalıdır.)
En etkili avantajı ağaç üzerinde milyonlarca kayıt olsa bile en fazla 2 ya da 3 I/O ile bir kayda ulaşmanın mümkün olmasıdır.(Dezavantaj ise bir düğümün silinmesi ya da değiştirilmesi durumunda ağacın yeniden organize edilmesi ihtiyacının olmasıdır.)
Örneğin T tablomuzda “id” kolonu üzerinde “index” oldugunu varsayarsak indeks oluşturmak için aşağıdaki gibi yazabiliriz :

 

Oracle acısından bu ağacın önemine gelecek olursak , Oracle indeks yapısını  bu ağaç yapısı üzerine oturtmuştur.Yani bir kolon üzerinde bir indeks oluşturduğunuzda bu indeks (kolon değeri) ve o verinin bulundugu satır bilgisi(rowid) bu ağaçta uygun yere yerleştirilir.(ROWID,verinin fiziksel adresidir).Leaf seviyesinde ya tek bir değer olur ya da bir değer aralığı bilgisi bulunur.Ama hepsi sıralıdır.Leaf seviyeler birbirine linkli liste mantığına göre bağlıdır.

 

CREATE INDEX t_id_idx ON t(id);

Peki bu aşamada neler yaşanır? “id” kolonunun değerleri artan sırada dizilir.Degeri ve tablodaki satır adresi(rowid) bilgisi saklanır, bu şekilde indeksimiz oluşturulmuş olur.Aşağıdaki sorguya bakalım :

select * from T where id = 12345

sorgusunda normal şartlarda indeks tarama (index scan) yapılır, önce “id” değeri indeksten bulunur ve satırının rowid bilgisine ulaşılır ve rowid bilgisi ile tabloya nokta atışı yapılarak veriler getirilir. “….where id between 200 and 300…” gibi bir sorguda “leaf” ler üzerinde gezilerek aralık (range) bilgisine ulaşılır.B Tree indeks yapısında tekil(unique) olmayan bir indeks değeri yoktur.

NOT : indeks tekil (unique) bir indeks ise tekillik sağlamak sorun olmaz ama eğer indeks tekil değilse bu tekillik Oracle tarafından indeks değeri yanına rowid bilgisi eklenerek sağlanır.Tekil durumunda indekse gore bir sıra oluşturulur, tekil değil ise bu sıralama 2 değere göre birden yapılır.

Kısaca indeksler bu şekilde.Ama bunun yanında “index-Unique Scan, Index-Range Scan, Index-Skip Scan, Index-Full ScanIndex-Fast Full  Scan , Index Join, Index Rebuild” konularına bakmanızı tavsiye ederim.

 

1 ) Indeksler view’larda kullanılabilir mi? Bu sorunun cevabı aslında çokta zor değil.View , bir sorgu cümleciğinden ibarettir.Tablonuzda indeks oluşturduysanız ve view oluştururken kullandığınız sorguda indeksi kullanmasını sağladıysanız view indeks kullanır aksi halde kullanamaz.

2) Indeksler ve NULL : Bitmap indeksler ile clustered indexler hariç B*Tree yapısındaki indeksler NULL barındırmazlar.Bunu şöyle ispat etmek mümkün :create table t2 (x int, str varchar2(15));create unique index idx_t2 on t2(x)declare
begin
             insert into t2 values(1,’bir’);
             insert into t2 values(2,’iki’);
             insert into t2 values(3,’uc’);
             insert into t2 values(null,’bos’);
             commit;
end;               

declare
sqlStr varchar2(500);
begin
             sqlStr := ‘analyze index idx_t2 validate structure’;
             execute immediate sqlStr;
end;    

select name, lf_rows from index_stats

NAME               LF_ROWS
IDX_T2            3

Görüldüğü üzere T2 tablosunun (x) kolonuna unique indeks uyguladık, 4 satır ekledik ama kontrol ettiğimizde 4 değil 3 satırın indeksli oldugunu gördük.(x) kolonu NULL değeri aldığı için indekslenmemiştir.

Yine T2 tablosundan “x” kolonu için sorgu yapalım :
select * from t2 where x = 1     sorgusunda “index unique scan” ile 1 satir gelirken
select * from t2 where x is null  sorgusunda “table Access full” ile 1 satir gelmiştir.Yani indeks oluşturduğumuz “x” kolonu için NULL sorgusu yaptıgımızda indeks kullanılmamıştır.Bunun sebebi yukarıda da değindiğimiz indekslerin NULL değer içermemesidir.


2 ya da daha fazla kolon üzerinde indeks oluşturdugumuz durumlarda da kolonlardan en az birinin NOT NULL olup değer içermesi gerekir ki indeks kullanılabilsin.
NOT :  Özellikle unique indeks oluşturmak istediğimizde “NOT NULL” kısıtı koymak indeksi verimli kullanmamızı sağlayacaktır.Parent tablonun primary key alanında yapılacak bir update ya da parent tablodan bir satırın silinmesi child tabloda bir “table lock” oluşmasına neden olacaktır.Bu durumda da child tablo üzerinde hiç bir şekilde DML işlemi yapılmasına izin verilmeyecektir.Bu da “deadlock” probleminin oluşmasına davetiye çıkarır.Indekslenmemiş foreign key’ler aşağıdaki durumlarda da probleme yol açar :
 

3) Indeksler ve Foreign key : Foreign key’in indekslenip indekslenmemesi konusu aslında tamamen tasarımınız ile ilgilidir.Foreign key indekslenmediğinde bizleri bekleyen en büyük problem belkide “deadlock” oluşmasıdır.Peki bu nasıl olur?Bunu anlamak için önce şu bilgileri tekrar edelim :“child table” foreign key barındıran tablodur, “parent table” ise  foreign key’in gösterdiği alanın bulundugu tablodur.

 

i) Child tablo da “ON DELETE CASCADE” özelliği olsun ve foreign key’de indeks bulunmasın.Bu durumda parent tabloda bir verinin silinmesi durumunda child tabloda bir “full table scan” yapılmasına sebeb olunur.

ii) Parent tablodan child tabloya dogru olan sorgularda.EMP / DEPT örneği verilebilir.EMP child table, DEPT ise parent tablodur ve örnegin depname = ‘XXX’ olan çalışanları getir gibi bir sorguda sıkıntı yaşayabilirsiniz :
     Select * from emp, dept
     where emp.deptno = dept.deptno
     and dept.depname = ‘XXX’
Peki tersi durumlar, yani foreign key değerinin indekslenmesine gerek olmayan durumlar neler olabilir ? :
    a) Parent tablodan bir veri silinmeyeceğinde
    b) Parent tablonun primary/unique key değeri update edilmeyeceğinde
    c) Parent tablo ile child tablo foreign key değeri üzerinden sorgulanmayacağında.
Bu şartlarda foreign key indeklemeye gerek yoktur bu sayede DML işlemlerimizde gereksiz yere indekslenmeden dolayı bir yavaşlamaya sebeb olmayacaktır. 


Hakkı Oktay
http://hakkioktay.wordpress.com

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın

Erkam(23.7.2010 11:44:50)
İndexlerle ilgili yararlı bir makale olmuş teşekkürler...
%78 %11 %11
Katılıyorum Çekimserim Katılmıyorum






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