The decode function can be used in SQL for and IF-THEN-ELSE construction. It's an alternative for the CASE statement which was introduced in Oracle 8.
Decode is a very useful and handy function for Oracle queries. It replaces the complex If-Then-Else logic, which is used to display different things based on different values in a column. This is usually used for pivoting purposes.
Merhaba, yine uzun bir aradan sonra staj günlüğüme yazmaya devam ediyorum. Bu, serinin 12. yazısı olacak ve konumuz Ertürk'ün yaptığı partitioning sunumu.
Turkcell'deki stajımızın sonuna yaklaşıyoruz yavaş yavaş, son haftalarda da gayet yoğun projeler üzerinde uğraşıyorduk herbirimiz. Dolayısıyla yazmaya vaktim olmadı. Stajın benim açımdan (ve sanırım Yazlım Geliştirme departmanındaki diğer arkadaşlar açısından da) çok keyifli geçtiğini söyleyebilirim. Hepimiz uzun soluklu, gerçek projelerde yer aldık ve kod yazdık. Eğitici sunumlar yaz boyunca devam etti, ediyor. Ve en güzeli de buradaki üst düzey yöneticilerimizle sohbet toplantılarımız oluyor ve onlar da bizimle tecrübelerini paylaşıyorlar. Gerçekten çok keyifli herşey. Burada öğrendiklerimiz ve özellikle yöneticilerimizle sohbetlerimiz binlerce dolar vererek bile kazanılamayacak tecrübelerdi. Turkcell Türkiye'nin en büyük ve en gelişmiş platformarından birine sahip ve böyle bir platformda çalışma, proje geliştirme, analiz yapma imkanını başka bir şekilde veya her zaman bulamazsınız.
Many people knows the show_space procedure of Tom KYTE. The procedure shows the space issues for an object, given in parameters. Execution of procedure is simple, and statistics are good. But, in AskTom, the show_space procedure has many versions :) and it's hard to know which is the last version. Also, the procedures can thow some errors in some cases and it is sometimes hard to clarify the error. In this topic, I will deal with them and give the code of last-version, running show_space code :)
This was actually my presentation on Aug 6, 2007 in Turkcell, about "Object Datatypes and Object Views" but I will write more on this article. This article consists of three parts.
Part-3 contains an article about object tables, object views and REFs.
This was actually my presentation on Aug 6, 2007 in Turkcell, about "Object Datatypes and Object Views" but I will write more on this article. This article consists of three parts.
Part-2 contains an article about object types and collection types.
This was actually my presentation on Aug 6, 2007 in Turkcell, about "Object Datatypes and Object Views" but I will write more on this article. This article consists of three parts.
Oracle is a relational database, but it has a great feature of object-oriented abstraction. Hence, you can use Oracle as a fully object-oriented database and develop your applications on this was. Also, you can use this object-oriented features on your relational schema, without modifying the relational data, just using object views.
Part-1 contains detailed overview of native datatypes and introduction to object datatypes.
Merhaba, bu makalede 24.07.2007'de Hakkı Oktay'ın yaptığı Autonomous Transactions
ve Dynamic SQL sunuma göz atacağız. Hakkı abinin sunumu gerçekten güzeldi, her developer'ın bilmesi gereken bir konu Dynamic SQL. Autonomous Transaction konsepti de önemli.
Merhaba, uzun bir aradan sonra yazı dizisine devam ediyorum :) Turkcell'de işler yoğunlaştı,stajyer hiç stajyer gibi olmadığı için, hepimiz gerçek projelerde çalışmaya devam ediyoruz, bu aralar da benim üzerinde çalıştığım proje için yoğundu o yüzden fazla birşey yazamadım. Ama haftasonunu kendime ayırıp 5-6 giriş yazmayı düşünüyorum, ha bu durumda kend
me mi bilgisayarıma mı ayırmış olacağım haftasonunu o tartışılır ama zaten bilgisayarlarla bütünleştiğim için çok birşey değişmeyecektir :)
Bu makalede, 23.07.2007 ve 24.07.2007'de 2 ayrı sunum yapmış olan
Hakkı Oktay'ın ilk sunumu üzerinden geçeceğiz. İlk konumuz Export, Import ve SQL Loader.
Q: Under what conditions, autotrace & explain plan can not give the correct execution plan of a sql?
A: To start with the answer to this - we need to understand that autotrace is just a feature of SQL Plus that automates an explain plan for us - so, autotrace and explain plan are sort of synonymous in this regard. I'll be using Oracle 10g Release 2 in these examples and will be using autotrace or sql_trace=true and TKPROF - you can get the same results in 9i and later using EXPLAIN PLAN and DBMS_XPLAN.DISPLAY to see the results. ..
You’ll hear it from many people, the biggest problem in many applications is the non-use of bind variables. Oracle bind variables are a super important way to make Oracle SQL reentrant.
Bind variables does well on most of the cases, but there are some rare cases that can reduce performance. Remember, the main idea on bind variables is to preserve the sql text, so, get the same hash value, so, skip parsing, so, use the same execution plan for the *same* (or it's better to say "similar", but neither the same, nor similar, let's invent a new word: "sameilar" :) ) queries. But there are some cases, especially for tables that has large clustering factor, or the data is not homogenous, or for partitioned tables, the optimizer will generate different execution plans for that "sameilar" queries. So with using bind variables, we force the optimizer to use the same execution plan, usually.
Optimizer statistics are a collection of data that describe more details about the database and the objects in the database. These statistics are used by the query optimizer to choose the best execution plan for each SQL statement.
In this entry, we have an example and performance analysis that shows the affect of gathering statistics. You will see the execution plan completely changes with gathering statistics...
Merhaba, yazı dizine stajın 3. haftasından devam ediyoruz. 18.07.2007 günü Alp Emre'nin "SQL, PL/SQL and Java" konulu sunumu vardı. Basit bir konu aslında, temel olarak SQL'den, PL/SQL'den ve Java'dan bahsedildi. Aslında her biri başlı başına bir eğitim konusu fakat bu bir introduction tadındaydı :)
Bu makalede bir de, aynı hafta cuma günü Mert'in yaptığı "Redo Internals" sunumuyla ilgili notlarımı da paylaşacağım.
For every SQL statement execution certain area in memory is allocated on the Shared Pool portion of the SGA. PL/SQL allow you to name this area. This private SQL area is called context area or cursor. A cursor acts as a handle or pointer into the context area. A PL/SQL program controls the context area using the cursor. Cursor represents a structure in memory and is different from cursor variable...
A transaction is a logical unit of work that contains one or more SQL statements. A transaction is an atomic unit. The effects of all the SQL statements in a transaction can be either all committed (applied to the database) or all rolled back (undone from the database).
Transaction management is the main mechanism that distinguishes between DBMS from other DBMS and DBMS from file system. The main purpose is to take the database from one consistent state to next. This satisfies the consistency of database for many cuncurrent users. That is imposible with file systems.
Merhaba, yazı dizinde stajımın 3. haftasına geçtik. (gerçekte şu anda 4. haftadayız) 16.07.2007 haftasına aslında Ersin damgasını vurdu diyebiliriz :)) Peş peşe pazartesi ve salı günü "Statement Processing and CBO" sunumları vardı. Gerçekten güzel sunumlardı, Ersin'in sunumlarına bayılıyorum zaten, anlatımı hoş oluyor :)
Merhaba, günlük serisinin gecikmeli 7. yazısında stajımızın 2. haftasının kalan 2 gününden bahsedeceğim. Baya yoğun bir hafta geçirmekte olduğum ve performans konusu üzerinde çok uğraştığım için biraz gecikmeli oldu bu.
Perşembe günü (12.07.2007) TUrkcell Akademi - İstiklal Cad. binasında staj oryantasyonu vardı. Farklı departmanlardan bir çok stajyer katıldı bu programa. Tüm gün bounca çeşitli sunumlar yapıldı...
This article is about Oracle SQL/PLSQL Performance Analysis, the aim and the tools.
Performance tuning is a broad and somewhat complex topic area when it comes to Oracle databases. Two of the biggest questions faced by your average DBA concern where to start and what to do. All you may know is that someone (a user) reports a problem about a slow or poor performing application or query. Where do you even begin to start when faced with this situation?
Turkcell staj günlükleri yazı dizisine 5. gününde devam ediyoruz. Bu makalede 4. ve 5. günü birlikte alacağım, çünkü 5. günde (06.07.2007) 4. günkü sunumun devamı yapıldı.
Turkcell'deki hayatımız artık yavaş yavaş rutinleşmeye başladı. Sabah gel kahvaltı et, sonra öğlene kadar bilgisayar başında otur -ki bu esas çalıştığımız saat- öğle yemeğinden sonra bir sunum ve daha sonrasında kalan yaklaşık 2 saatlik vakitte biraz sunum üzerinde çalışma yapıyorum ve blog yazılarını hazırlamaya çalışıyorum.
4. gün (05.06.2007), öğleden sonra Mert İNAN'ın "Transaction Management" sunumunun ilk bölümü vardı. Oracle için çok önemli bir kavram, daha doğrusu DBMS'ler için çok önemli bir kavram transactions. Transaction mantığı, DBMS'leri birbirinden ve file system'den ayıran kavramlardır. İmplementasyona göre farklılık gösterir genelde, o yüzden bir DBMS'i öğrenmeye başladıysanız, onun transaction mantığını da başlarda öğrenmeniz gerekir...
Merhaba, günlük serisinin 6. yazısında çarşamba günkü (11.07.2007) Alp Emre'nin yaptığı "Oracle Architecture" sunumundan ve biraz da diğer çalışmalarımdan bahsedeceğim.
Konuya girmeden önce, aşağıda External links kısmına Turkcell yaz staj dönemi sunum programımızın linklerini koyuyorum. Buradaki sunumların sırası önemli. Bunu da incelemenizin ve "Sırada ne var?" konusunda bilgi sahibi olmanızın yararı olabilir.
Çarşamba günü, salı günkü tkprof araştırmalarıma devam ettim çoğunlukla. Sabah, tkprof analizi hakkında Tonguç ve Danişment bey'e soru soruyorken bir anda kendimi DBA'lerin yanında buldum :) Çarşamba bütün gün operasyon merkezindeydim ve SQL trace'lerin nasıl yorumlandığı ve çalışan bir sistem üzerinde optimizasyonun nasıl yapıldığını gördüm. Esas stajyerliği çarşamba günü yaptım sanıyorum...
Turkcell'de 12 hafta sürecek olan stajımızın 2. haftasına başladık 9 Temmuz'da, bu makalede ise 9 ve 10 Temmuz günlerinde öğrendiklerimizi aktaracağım.
Bu hafta bazı ufak tefek sıkıntlardan dolayı, pazartesi ve salı günkü sunumlar, normal sunum programımızın dışında gerçekleşti. Tonguç bey bütün yoğunluğuna rağmen bizi yanlız bırakmayarak sohbet tadında güzel sunumlar yaptı, bir çok farklı konu üzerinde durduk. Concepts Guide'dan Chapter 6, 7, ve 12 üzerine biraz konuştuk...
Bu gün (04.07.2007) stajın 3. günü. Laptop'umu masama getirip internete bağlayabildim sonunda, bu yazıyı da şu anda burdan yazıyorum :)
Eksiklerimiz yavaş yavaş tamamlanmaya başladı. Gerçekten başta Tonguç bey olmak üzere burdaki herkes bizimle çok güzel ilgileniyor. Bu gün laptopumu da getirdiğim için fazla sıkılmadım, alışık olduğum gibi yoğun çalışma şansım oldu :) Blogumla ilgili eksikleri tamamladım çoğunlukla. Saate de bakıyorum 16:42... Mesai bitimine kadar sanırım bu makaleyi de bitirebilirim :)
Bu gün de sevgili
Osman ÇAM -ki kendisi daha önce de belirttiğim gibi keyifli bir arkadaş olmakla birlikte bizi Turkcell'deki staj organizasyonlarından haberdar eden kişidir…
Hepimiz, Oracle'a giden yolun başındayız. Oracle çok büyük bir okyanus. Öğrenmek isteyen fakat hiçbir fikri olmayan arkadaşlar "iyi de ne yapıcaz?" diye düşünüyorlar. Eminim, çünkü bende öyle düşünmüştüm. Verilen cevap haliyle "tahiti.oracle.com'da bütün dökümantasyon var, gir oku" şeklinde olursa olmuyor :) Biraz daha fikir sahibi olması gerekiyor insanların.
Bu makale bir linkler dizisi şeklinde olacak aslında. Üstadımız Tonguç bey'in bu konuda çok güzel makaleleri var. Onlara göz atmak gerekiyor. (Bu makalenin başlığı da ordan çalıntı zaten :) )
Tonguç bey'in bu konuda güzel bir maili vardı, konuya onunla başlamak istiyorum…
Tekrar merhaba, bu makalede de stajımızın ikinci günü hakkında birşeyler karalayacağım :)
Tekrar hatırlatayım ki "Turkcell Staj Günlüğü"ne blogdaki bir yazı dizisi olarak başladım. Bu da ilk makale'nin devamı niteliğinde. Lütfen okumayanlar ilk makaleyi de okusunlar.
2. gün (04.07.2007) sabah çok fazla aksiyonlu geçmese de, kendime güzel basit bir Oracle kitabı bulmayı başardım: "Oracle 9i: New features for Administration" Hoş bir kitaptı, biraz göz attım. "11g'nin çıkmak üzere olduğu bir dönemde 9i: New Features kitabından daha güncel birşeyler bulamadın mı" diye söylenmeyin, çünkü dün Tonguç bey bahsetti, Turkcell bünyesinde 10g olduğu gibi bir miktar 9i ve 8i database'ler de var. Bu yüzden en azından son dakikada şaşırmamak adına onlar hakkında da bir miktar bilgi sahibi olmamızda fayda var…
Uzun süredir üzerinde çalıştığımız çalışmalar neticesinde Turkcell'deki yaz stajımız başladı. Hasan Tonguç beye çok teşekkür ederim öncelikle, değerli paylaşımları ve çalışmalar için hiçbir zaman esirgemediği yardımları için... Bir de Osman'ı unutmamak lazım ki, okulda bizi bulup bu çalışmalara bulaştıran şahsiyettir kendisi :) Tabi bu sayede en önemlisi DBMS -özellikle Oracle-, PL/SQL ve Java konularında ufkumuz açılmış oldu. Aynı zamanda Türkiye'nni en büyük şirketlerinden birinde, çok faydalı olacağına inandığımız 3 aylık uzun bir staj dönemine katılma şansımız oldu.
Öncelikle, staj boyunca tecrübelerimi, öğrendiklerimi paylaşmak ve günlük yaşantım ile psikolojimi özetlemek için böyle bir yazı dizisi oluşturmayı düşündüm. Staj boyunca bu dizi devam edecek ve bende sizinle paylaşıyor olacağım. Umarım takip eden ve değerli yorumları katan birileri olur…