SlideShare a Scribd company logo
1 of 14
3. Türkiye PostgreSQL Konferansı 1
M. Atıf CEYLAN
SitenizOlsun.com
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler
3. Türkiye PostgreSQL Konferansı 2
Sunum İçeriği
● İhtiyacı belirlemek
● Sistem başarımını artırıcı öneriler
● Veritabanı başarımını artırıcı öneriler
● Uygulama başarımını artırıcı öneriler
3. Türkiye PostgreSQL Konferansı 3
Sistem Başarımını Artırıcı Öneriler
● Mümkün olduğunca fazla bellek kullanmak,
● Disk seçeneklerini gözden geçirmek (ssd, raid)
Raid 10, Raid 1 ve Diğerleri
3. Türkiye PostgreSQL Konferansı 4
Sistem Başarımını Artırıcı Öneriler
● Raid 0
3. Türkiye PostgreSQL Konferansı 5
Sistem Başarımını Artırıcı Öneriler
● Raid 1
3. Türkiye PostgreSQL Konferansı 6
Sistem Başarımını Artırıcı Öneriler
● Raid 1
3. Türkiye PostgreSQL Konferansı 7
Sistem Başarımını Artırıcı Öneriler
● Raid 5
3. Türkiye PostgreSQL Konferansı 8
Sistem Başarımını Artırıcı Öneriler
● Raid 10
3. Türkiye PostgreSQL Konferansı 9
Sistem Başarımını Artırıcı Öneriler
● Veri, index ve logları birden fazla disk üzerinde tutma
● Dosya Sistemi tercihi ve opsiyonları (xfs, noatime,barrier, stripe size,
block size)
● Unix Socket kullanımı
● Bağlantılarda SSL kullanımı
● shared_buffers, work_mem, maintenance_work_mem, temp_buffers,
effective_cache_size
SET work_mem = '16MB'; veya SET local work_mem = '16MB';
● log_min_duration_statement
● pg_stat_statements, pg_stat_plans, pgstattuple, pg_buffercache
● https://wiki.postgresql.org/wiki/Monitoring
● pganalyze, pgwatch
3. Türkiye PostgreSQL Konferansı 10
Veritabanı Başarımını Artırıcı Öneriler
● Kurulum parametreleri ve kaynak koddan kurulum
● Partitioning
● Indexler
● Prepared Statements
● Tablespace
3. Türkiye PostgreSQL Konferansı 11
Uygulama Başarımını Artırıcı Öneriler
● Gereksiz bağlantılar açmamak
● Sorgudan önce work_mem ayarlamak
● FullText Search kullanmak
● Select * ... ifadesini bilinçli kullanmak
● Explain çıktılara bakmak
● Toplu yapılacak işlemlerde birden fazla kez uygulama-veritabanı
arası git-gel yapmak yerine fonksiyonlar tanımlamak
● MemCache kullanımı
3. Türkiye PostgreSQL Konferansı 12
MemCache Kullanımı
3. Türkiye PostgreSQL Konferansı 13
MemCache Kullanımı
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Baglanamadi");
$query = "SELECT * FROM cache_test where id=123";
$key = md5($query);
$get_result = array();
$get_result = $memcache->get($key);
if ($get_result) {
echo $get_result['first_name'] . "n";
echo $get_result['last_name'] . "n";
} else {
include('db.php');
$result = pg_query($query);
$row = pg_fetch_array($result);
echo $get_result['first_name'] . "n";
echo $get_result['last_name'] . "n";
$memcache->set($key, $row, false, 600);
}
3. Türkiye PostgreSQL Konferansı 14
Sorular
M. Atıf CEYLAN
SitenizOlsun.com

More Related Content

Similar to DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı - 2014

Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriZekeriya Besiroglu
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomrukoktaygokgol
 
Hackerspace PostgreSQL Atolyesi - 1
Hackerspace PostgreSQL Atolyesi - 1Hackerspace PostgreSQL Atolyesi - 1
Hackerspace PostgreSQL Atolyesi - 1Erkin Çakar
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11Cihan Özhan
 
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaHüseyin Mert
 
Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614EDB
 
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerWordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerSalih Özdemir
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricksZekeriya Besiroglu
 
Stored procedure
Stored procedureStored procedure
Stored procedureoktaygokgol
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesiTalha Kabakus
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1kaan verdioglu
 
Oracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumOracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumAnar Godjaev
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20Cihan Özhan
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı GözleyelimOguz Yarimtepe
 
Oracle veritabanı yonetiminde onemli teknikler
Oracle veritabanı yonetiminde onemli tekniklerOracle veritabanı yonetiminde onemli teknikler
Oracle veritabanı yonetiminde onemli tekniklerOrhan ERIPEK
 
GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...
GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...
GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...Anar Godjaev
 
Veri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaVeri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaoktaygokgol
 

Similar to DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı - 2014 (20)

Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleri
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomruk
 
Hackerspace PostgreSQL Atolyesi - 1
Hackerspace PostgreSQL Atolyesi - 1Hackerspace PostgreSQL Atolyesi - 1
Hackerspace PostgreSQL Atolyesi - 1
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
 
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
 
Konu anlatım
Konu anlatımKonu anlatım
Konu anlatım
 
Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614
 
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerWordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricks
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
Exchange Server 2010 Tips and Tricks
Exchange Server 2010 Tips and TricksExchange Server 2010 Tips and Tricks
Exchange Server 2010 Tips and Tricks
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1
 
Oracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumOracle 10g Database Server Kurulum
Oracle 10g Database Server Kurulum
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
 
Oracle veritabanı yonetiminde onemli teknikler
Oracle veritabanı yonetiminde onemli tekniklerOracle veritabanı yonetiminde onemli teknikler
Oracle veritabanı yonetiminde onemli teknikler
 
GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...
GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...
GELIŞTIRICILER IÇIN ORACLE 11G’DE ÖLÇEKLENEBILIR KOD GELIŞTIRME & YENI ÖZELLI...
 
Veri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaVeri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirma
 

DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı - 2014

  • 1. 3. Türkiye PostgreSQL Konferansı 1 M. Atıf CEYLAN SitenizOlsun.com DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler
  • 2. 3. Türkiye PostgreSQL Konferansı 2 Sunum İçeriği ● İhtiyacı belirlemek ● Sistem başarımını artırıcı öneriler ● Veritabanı başarımını artırıcı öneriler ● Uygulama başarımını artırıcı öneriler
  • 3. 3. Türkiye PostgreSQL Konferansı 3 Sistem Başarımını Artırıcı Öneriler ● Mümkün olduğunca fazla bellek kullanmak, ● Disk seçeneklerini gözden geçirmek (ssd, raid) Raid 10, Raid 1 ve Diğerleri
  • 4. 3. Türkiye PostgreSQL Konferansı 4 Sistem Başarımını Artırıcı Öneriler ● Raid 0
  • 5. 3. Türkiye PostgreSQL Konferansı 5 Sistem Başarımını Artırıcı Öneriler ● Raid 1
  • 6. 3. Türkiye PostgreSQL Konferansı 6 Sistem Başarımını Artırıcı Öneriler ● Raid 1
  • 7. 3. Türkiye PostgreSQL Konferansı 7 Sistem Başarımını Artırıcı Öneriler ● Raid 5
  • 8. 3. Türkiye PostgreSQL Konferansı 8 Sistem Başarımını Artırıcı Öneriler ● Raid 10
  • 9. 3. Türkiye PostgreSQL Konferansı 9 Sistem Başarımını Artırıcı Öneriler ● Veri, index ve logları birden fazla disk üzerinde tutma ● Dosya Sistemi tercihi ve opsiyonları (xfs, noatime,barrier, stripe size, block size) ● Unix Socket kullanımı ● Bağlantılarda SSL kullanımı ● shared_buffers, work_mem, maintenance_work_mem, temp_buffers, effective_cache_size SET work_mem = '16MB'; veya SET local work_mem = '16MB'; ● log_min_duration_statement ● pg_stat_statements, pg_stat_plans, pgstattuple, pg_buffercache ● https://wiki.postgresql.org/wiki/Monitoring ● pganalyze, pgwatch
  • 10. 3. Türkiye PostgreSQL Konferansı 10 Veritabanı Başarımını Artırıcı Öneriler ● Kurulum parametreleri ve kaynak koddan kurulum ● Partitioning ● Indexler ● Prepared Statements ● Tablespace
  • 11. 3. Türkiye PostgreSQL Konferansı 11 Uygulama Başarımını Artırıcı Öneriler ● Gereksiz bağlantılar açmamak ● Sorgudan önce work_mem ayarlamak ● FullText Search kullanmak ● Select * ... ifadesini bilinçli kullanmak ● Explain çıktılara bakmak ● Toplu yapılacak işlemlerde birden fazla kez uygulama-veritabanı arası git-gel yapmak yerine fonksiyonlar tanımlamak ● MemCache kullanımı
  • 12. 3. Türkiye PostgreSQL Konferansı 12 MemCache Kullanımı
  • 13. 3. Türkiye PostgreSQL Konferansı 13 MemCache Kullanımı $memcache = new Memcache; $memcache->connect('127.0.0.1', 11211) or die ("Baglanamadi"); $query = "SELECT * FROM cache_test where id=123"; $key = md5($query); $get_result = array(); $get_result = $memcache->get($key); if ($get_result) { echo $get_result['first_name'] . "n"; echo $get_result['last_name'] . "n"; } else { include('db.php'); $result = pg_query($query); $row = pg_fetch_array($result); echo $get_result['first_name'] . "n"; echo $get_result['last_name'] . "n"; $memcache->set($key, $row, false, 600); }
  • 14. 3. Türkiye PostgreSQL Konferansı 14 Sorular M. Atıf CEYLAN SitenizOlsun.com