• birkaç uyarı
    - column sırası normal yollarla alter edilemez. siz hangi sırayla define ederseniz öyle kalırlar. bazı administrator programlar bunu veriyi temporary bir table a kopyalayarak yapmaktadır.
    - timestamptz kullanmak düz timetamp kullanmaya tercih edilmelidir. veri herhangi bir şekilde büyümemektedir ancak timezone konusunda büyük yardımı olur.
    - timestamptz columnlarda index tanımlarsanız ve session timezone unu değiştirirseniz selectleriniz döndürmesi gereken veriyi döndürmeyebilir bazen.
    - bir table da max 1600 column olabilir. (tabi kalkıp hepsini long type tanımlarsanız mesela bu sayı daha da azalır) yine, bir table a 1600 adet column ekleyip drop ederseniz, sonuçta 5 tane column da olsa 6. yı eklerken error yersiniz. düzeltmek için dump alıp restore etmeniz gerekebilir.
    - now() fonksiyonu bir transaction içinde hep aynı değeri döndürür. transaction başlangıcı baz alınır.
    - win32 versiyon her connection için yeni bir postgres.exe instance yarattığı için sorun çıkarabilir. (aslında diğer platformlarda da bu böyle ama bir linux da yeni process yaratmanın thread yaratmaktan pek de maliyetli bir iş olmadığını savunuyorlar. bilemeyeceğim.) bir pooling çözümü bulun.
    - mümkün olduğunca stored procedure kullanmaya çalışın.
    - query planner bazı durumlarda query'i adam gibi şekle sokamayabilir. eğer indexler düzgün olduğu halde çok yavaş çalışan bir query ile karşı karşıyaysanız pg indexleri kullanmayı beceremiyor olabilir. querynizle biraz oynayın. temel olarak hiçbirşey değişmemiş olsa bile where clauselarınızın yerini değiştirmeniz bazen query nin hızını inanılmaz etkileyebiliyor. nadiren ortaya çıkan bir durum.
    - column default value belirlerken function kullanabilirsiniz. bir timestamptz column a "now()" default variable belirleyebilirsiniz. bokunu çıkarana kadar kullanın.
    - count(*) diğer birçok rdbms den yavaş çalışmaktadır. (innodb table larda da yavaş çalışıyor sanırım) dikkatli olun.
    - pgsql'in "unicode" dan anladığı "utf-8" dir. utf-16 beklemeyin.
    - bazı durumlarda trigger yerine rule kullanmanız daha sağlıklı olabilir. (bkz: http://www.postgresql.org/…tive/rules-triggers.html)
    - built-in full text indexing olmadığıiçin tsearch2 kullanabilirsiniz.
    - built-in replication olmadığı için slony1 kullanabilirsiniz. (yeni sürümü win32 service desteği de içeriyor)
    - databaselerinizi arada sırada vacuumlayın. vacuum komutu artık işe yaramayan ama data filelarda duran verilerin temizlenerek disk alanı açılmasını, istatistiklerin yenilenerek query planner ın daha düzgün seçimler yapmasını ve bol transaction açılan veritabanlarında veri kaybını önler. (32 bit transaction idler eğer yeterince hayvanlık yaparsanız bir süre sonra bitecek ve geri saracaktır. bu da normalde daha yeni transactionlardan etkilenmemesi gereken transactionların kendinden yeni olduğu halde id numarası kendinden küçük olan diğer transactionlardan etkilenmelerine neden olur.)
    - 8.1 itibariyle hizmetinize sunulan autovacuum daemondan kesinlikle yararlanın. kendisi row level istatistikleri inceleyerek yapılan insert/delete/update işlemlerinin çokluğuna bağlı olarak tablelara otomatik olarak vacuum çekmektedir.
    - kalkıp 10000000 kere "select 1" diye query yollayarak mysql ile karşılaştırmayın. komplike queryler, bol bol joinler, stored proclar kullanarak onlarca userın altında ezilip ezilmediğine bakın.
    - verinizi güvenle kendisine emanet edin. arkanıza bakmayın. mysql (myisam) kullanıp da "ulan corrupt?!" demeyin bir gün. çıldırmayın.
    - en önemlisi, default config'i ile asla ama asla çalıştırmayın, çalıştırırsanız adam gibi performans beklemeyin.
  • telaffuz konusunda linux ile ayni kaderi paylasan yazilimdir ayrica.

    linux, "linuks" diye okunur ama piyasada "linaks" "layniks" vs. diyenleri de bulunur ya, "postgresql" de "postgres" veya "postgres-ku-el" diye okunmasi gerekirken "postgresikul" ve hatta daha kotus "postgre" diyenlerin gazabina ugrar. rivayete gore her "postge" denildiginde bir yerlerde bir production instancein bir wal segmenti corrupt olurmus.
  • kullanmaya yeni başladım şöyle bir elimi alıştırmak istiyorum diyenler için postgresql exercises adlı bir online platform barındırır.
  • yakın zaman önce mhrs (merkezi hekim randevu sistemi) oracle'dan postgre'ye geçti.
    https://www.linkedin.com/…ivity:6748961788571750401

    vergilerimizin iyi harcanması yönünde olumlu bir gelişme.

    * vergilerin asıl olarak nerelerde çarçur edildiğinin farkındayım.
  • ovulmeyi hak eden, isini en guzel sekilde yerine getiren, kur configure et ve unut seklinde bir yasam dongusu olan open source rdbms.

    seviyorum seni, amk dumun fili.
  • .net uzerinden eriseyim gonul rahatligi ile kullanayim diyenler ufak bir arama taramadan sonra npgsql isimli provider'a ulasacaklardir.

    ha iste onun allah belasini versin.

    gidin efendi gibi http://crlab.com/pgsqlnet/ adresinden corelab'in gelistirdigi component'i indirin, kurun.

    calisin gonul rahatligiyla.

    oh be.
  • timestamptz tipinde bir alana yazdığınız veriyi, sistemin timezone'u güncellenip postsgres servisi restart edildiğinde güncel hali ile getiren akıllı database. seviyoruz.
  • oracle database üzerinden çalışan bir projenin migration unu yaptığım rdbms.
    mis gibi de çalışıyor. şahane çalışıyor.

    ancak bazı caveat lar var;

    1- synonymler yok. synonym yerine benzer trickler var ama tam yerini tutmuyor uğraştırıyor.
    2- streaming replication bir data guard veya mirroring kadar iyi değil. özellikle switchover konusunda yetersiz kalıyor - bunu geliştireceklermiş.
    3- plsql çalıştırıyorum sorunsuz dese de tam olarak olmuyor.
    4- oracle da bulunan ve çok işe yarayan offline index ekleme seçeneği yok. özellikle boyutu 10gb üzeri tablolarda sıkıntı çekilebiliyor.
    5- wal dosyalarını el ile çevirmek imkansız. bu durum hot backup alınacak makinede yer yok ise (wal_keep_segments değerini 1 den 2 den ) yüksek tutamıyor iseniz sıkıntı.
    6- geniş bir topluluğu var ancak toplulukta neyin ne olduğunu bilen insan sayısı kısıtlı. oracle da metalink üzerinden yüksek öncelikli bir ticket açtığınızda hızla aldığınız cevabı kendi kendinize bulmanız gerekebiliyor. topluluk geliştikçe bu da gelişecek tabii.

    yukarıdakileri okudum ama anlamadım, bunlara hiç ihtiyaç duymadım diyorsanız,oracle a çuvalla para vermenin anlamı yok.
  • türkçe kaynak sıkıntısı çekiyorsanız megep'te endüstriyel otomasyon teknolojileri alanından internet programlama dersini seçin.
  • capon programcı tarafından geliştirilmiş veritabanı. ubuntu server ortamında yapmış olduğum cpu kullanım testlerinde saçma bir şekilde bazı processlerinin 4 cpu yu da %100 e çıkardığını hatta o derece ki kendisini kullanan uygulamanın process prioritysinden yiyip işlemciyi babasının malıymış gibi kullanması gözlemlediğim büyük eksikliklerden biri. yapmış olduğum tüm max cpu usage ayarlarıma rağmen sorgu olmaması durumunda bile kendi içersindeki threadlerin (artık ne yapıyorsa) cpu yu %100 e çıkardığı görülmüştür. dizayn olarak muhtemelen dedicated server da çalıştırılmak üzere yapılmış, diğer proceslere saygı sıfır arkadaş.
hesabın var mı? giriş yap