Firebird Veritabanının Limitleri

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7434
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Firebird Veritabanının Limitleri

Mesaj gönderen mussimsek » 17 Şub 2008 08:20

Merhaba,

Makalenin pdf hali : http://www.delphiturkiye.com/dsplus/m.p ... itleri.pdf

Veritabanının Limitleri. En son 2.0 sürümü çıkınca güncellenmiş limitler aşağıdadır. 2.1 ile değişiklik var mı bakmadım. Listenin orjinali : http://firebirdsql.org/index.php?op=guide&id=techspec

FIREBIRD 2.0

Veritabanı Limitleri

Maksimum Veritabanı Boyutu : Birden çok dosya kullanarak sınırsız. Şu ana kadar bilinen en büyük veritabanı boyutu 980 GB'ın üzerinde.

Maksimum Veritabanı Dosyası Büyüklüğü : TB'larca büyüklüğe ulaşabilir ancak pratik olarak işletim sisteminin dosya sınırı ile sınırlıdır. Bazı işletim sistemlerinde maksimum dosya büyklüğü 4 GB veya 2 GB'tır.

Maksimum Veritabanı Dosyası Sayısı : 64.535

Maksimum Tablo (table) Sayısı : 64.535

Bir Tablo'nun Ulaşabileceği Maksimum Boyut : Yaklaşık 32 TB.

Tablo'nun harici dosyasının ulaşabileceği maksimum boyut : 2 GB.

Bir Tablo'ya eklenebilecek maksimum kayıt (row) : 16 milyardan fazla. (Bundan sonrası denenmemiştir)

Maksimum kayıt büyüklüğü : 64 KB.

Maksimum page size : 16 KB. Page size : 1024, 2048, 4096, 8192 veya 16384 değerlerini alabilir. 1024'ün kullanımı tavsiye edilmez!

Tablo başına maksimum alan sayısı : Kullandığınız alan tipine göre değişir. Hepsini integer yapsanız : 16.384 adet.

Tablo başına maksimum indeks sayısı : 65.535

Maksimum indeks büyüklüğü (width) : 4096 byte. Maksimum indeks büyüklüğü page size büyüklüğünün 1/4'ü kadardır. 16 KB page size kullanırsanız, indeks büyüklüğü 4096 byte'a kadar çıkabilir.

Veritabanı başına eklenebilecek maksimum indeks sayısı : 4.398.046.511.104


FIREBIRD 1.5

Veritabanı Limitleri

Maksimum Veritabanı Boyutu : Birden çok dosya kullanarak 32 TB.

Maksimum Veritabanı Dosyası Büyüklüğü : TB'larca büyüklüğe ulaşabilir ancak pratik olarak işletim sisteminin dosya sınırı ile sınırlıdır. Bazı işletim sistemlerinde maksimum dosya büyklüğü 4 GB veya 2 GB'tır.

Maksimum Veritabanı Dosyası Sayısı : 64.535

Maksimum Tablo (table) Sayısı : 64.535

Bir Tablo'nun Ulaşabileceği Maksimum Boyut : Yaklaşık 36 GB.

Tablo'nun harici dosyasının ulaşabileceği maksimum boyut : 2 GB.

Bir Tablo'ya eklenebilecek maksimum kayıt (row) : Yaklaşık 4 milyar.

Maksimum kayıt büyüklüğü : 64 KB.

Maksimum page size : 16 KB. Page size : 1024, 2048, 4096, 8192 veya 16384 değerlerini alabilir. 1024'ün kullanımı tavsiye edilmez!

Tablo başına maksimum alan sayısı : Kullandığınız alan tipine göre değişir. Hepsini integer yapsanız : 16.384 adet.

Tablo başına maksimum indeks sayısı : 65.535

Maksimum indeks büyüklüğü (width) : 252 byte.

Veritabanı başına eklenebilecek maksimum indeks sayısı : 4.398.046.511.104

VERİ TİPLERİ

Kod: Tümünü seç

İSİM	BÜYÜKLÜK	ARALIK / HASSASİYET		AÇIKLAMA
varchar(n)	n karakter	1 - 32.767 byte		"Değişken uzunlukta karakter veya metin. 
Eğer multibyte karakter seti kullanırsa 
sığacak karakter sayısı daha az olur."
smallint	16 bit	- 2^15'den + 2^15'e kadar		
integer	32 bit	- 2^31'den + 2^31'e kadar		
float	32 bit	3.4 x 10^-38 den 3.4 x 10^38 'e kadar		
double precision	64 bit	1.7 x 10^-308 'den 1.7 x 10^308 'e kadar		
timestamp	64 bit (2 x 32 bit)	1 Ocak 100'den 28 Şubat 32.768'e kadar		Tarih (32 bit) ve saati (32 bit) birlikte tutar. 
date	32 bit	1 Ocak 100'den 28 Şubat 32.768'e kadar		Sadece tarih, saat depolanmaz.
time	32 bit	00:00'dan 23:59.9999'a kadar		Sadece saat
blob	< 32 GB	-		Genelde büyük verileri saklamak için.
numeric (x, y)	16, 32 veya 64 bit	Verilen kesin hassasiyet ve küsuratta sayı.		numeric(10,3) -> xxxxxxx,yyy formatındadır.
decimal (x, y)	16, 32 veya 64 bit	Verilen en az hassasiyet ve kusüratta sayı.		decimal(10,3) -> xxxxxxx,yyy formatındadır.

dberdi
Üye
Mesajlar: 23
Kayıt: 04 Oca 2008 03:56

Re: Firebird Veritabanının Limitleri

Mesaj gönderen dberdi » 07 Haz 2008 11:16

mussimsek yazdı: .......
Maksimum Veritabanı Boyutu : Birden çok dosya kullanarak sınırsız. Şu ana kadar bilinen en büyük veritabanı boyutu 980 GB'ın üzerinde.

Maksimum Veritabanı Dosyası Büyüklüğü : TB'larca büyüklüğe ulaşabilir ancak pratik olarak işletim sisteminin dosya sınırı ile sınırlıdır. Bazı işletim sistemlerinde maksimum dosya büyklüğü 4 GB veya 2 GB'tır.

Bir Tablo'nun Ulaşabileceği Maksimum Boyut : Yaklaşık 32 TB.

Tablo'nun harici dosyasının ulaşabileceği maksimum boyut : 2 GB.
......
maksimum dosya büyüklüğü 4 gb veya 2 gb demişsiniz. biz bunu nasıl ayarlayabiliriz ? ibexpert aracını kullanıyorum, mesela bir veritabanını oluştururken 2 gb den sonra yeni bir dosya oluştur diyebiliyormuyum? bunu nasıl ayarlayabiiyoruz ? örneğin veritabanının boyutu 1.95 gb oldu, misal veriyorum 2 gb dede sorun çıkabilir işletim sisteminden dolayı, böyle bir durumda nasıl çözüm bulabiliyoruz, veritabanını oluştururken her 2 gb de bir tablonun harici dosyasını değiştir ((dosya0001, dosya0002 vs vs...) yada veritabanı dosyası oluştur/değiştir (db001... db002... vs vs) gibi. böyle bir durumda nasıl çözüm bulabiliriz ?

Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4479
Kayıt: 10 Haz 2003 12:48
Konum: İstanbul

Re: Firebird Veritabanının Limitleri

Mesaj gönderen rsimsek » 15 Haz 2008 12:57

Bahsedilen dosya boyutu sınırı FAT32 dosya sistemi içindir. NTFS ve ext2/ext3 (linux) için böyle bir sorun yok. Bahsedilen kontrolü FB nin yapıp yapmıyacağını bilmiyorum. Yazılımcının kontrol etmesi gerekebilir :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!

kadioglu
Üye
Mesajlar: 34
Kayıt: 22 Mar 2004 06:15

Re: Firebird Veritabanının Limitleri

Mesaj gönderen kadioglu » 01 Ağu 2008 06:37

Maksimum kayıt büyüklüğü : 64 KB.

bu cümleden anlaşılan biz fb ciler olarak 100 000 farh içeren bir yazıyı veri tabanımıza kaydedemeyeceğiz mi?

mehmetcan
Üye
Mesajlar: 63
Kayıt: 14 Tem 2008 04:19

Re: Firebird Veritabanının Limitleri

Mesaj gönderen mehmetcan » 01 Ağu 2008 02:00

Maksimum kayıt büyüklügü derken, bir table daki bir satırdaki bilgi miktarı kastediliyor.

Yani tabloda tanımlayabilecegin alanların toplamı 64 kb i aşamaz. Tablonun aşamayacagı sınır ise 36 GB tir.

Örnegin table in da 16384 tane int alan kullanabilirsin. 16384 x 4 (int 4 byte) = 64 kb

Toplam satır sayısı, yani kaç tane kayıt girebilecegin ise 16 milyarla sınırlıdır.

kadioglu
Üye
Mesajlar: 34
Kayıt: 22 Mar 2004 06:15

Re: Firebird Veritabanının Limitleri

Mesaj gönderen kadioglu » 03 Ağu 2008 01:13

cevap için teşekkür ederim. Ama kastettiğim şuyud örneğin makale girişi yapılan bir vt düşünelim. Eğer ki bir makalenin uzunluğu 100 kb (ki bu olabiliyor-ben karşılaştım) ise bu varchar olarak kaydedilemeyecek.

Eğer blob olarak tanımlayacaksak???? Bu ne kadar çözüm olur....
mysqlde de var bu alanlar ama orada mediumtext var ve 16 milyon harf destekliyor.. onun gibi bir alanımız (metin barındıran) yok sanırım..
...ROKA...

mehmetcan
Üye
Mesajlar: 63
Kayıt: 14 Tem 2008 04:19

Re: Firebird Veritabanının Limitleri

Mesaj gönderen mehmetcan » 03 Ağu 2008 05:07

Metinleri blob olarak kaydedebilirsin.
Blob alanların maksimum büyüklügü 32 gb olabiliyor. Tüm bloblar degil, tek bir blob için geçerli bu sınır.

mehmetcan
Üye
Mesajlar: 63
Kayıt: 14 Tem 2008 04:19

Re: Firebird Veritabanının Limitleri

Mesaj gönderen mehmetcan » 03 Ağu 2008 05:15

Aklımda kalan 32 gb yanlışmış, o sınır veritabani page size i 8 kb ise geçerli, 16 kb kullanırsan yeterince büyük demiş.
Bloblarda aramalarda da sınırlamalar var, containing, starting, like dışındaki diger operatorler desteklenmiyor. Gerçi bu üç operator azcok her işi görür.

http://www.ibphoenix.com/main.nfs?page=ibp_blobs
Blobs and Varchars

Varchars are limited to 32k in length whilst a blob is effectively unlimited in size, however the page size of a database will determine maximum size as determined by the

e.g.
1Kb page size => 64 Mb
2Kb page size => 512 Mb
4Kb page size => 4 Gb
8Kb page size => 32 Gb
16Kb page size => Big enough:-)

A normal row in Firebird is limited to max 64k, and a varchar is part of a row, so this limits the use of multiple varchar columns within a single table, wheras a blobid is only 8 bytes.

Varchars are fetched as part of the row in full, whilst blobs are fetched separately.

Varchars are compressed via RLE, blobs are not, unless you compress them yourself via some kind of filter mechanism.

Blobs can't be indexed, and access via search is limited to LIKE, STARTING and CONTAINING, also blobs cannot be compared using =, <,>, etc whilst varchars do support =, <.>, BETWEEN, IN as well as case sensitive LIKE and STARTING and case insensitive containing.

You cannot define collation sequences for Blobs.

Blobs do not support UPPER, CAST, MIN, MAX etc.

Blobs do not support sorting, as well as GROUP BY, DISTINCT, UNION, JOIN ON.

Blob columns cannot be concatenated.

To retrieve data from a table, you need to have the SELECT privilege.

To retrieve blob, you only need to know its blobid. But there isn't a check made against the table that the blob is assigned to, so if you know the blobid anybody can effectively read the blob.

Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2219
Kayıt: 06 Ağu 2003 11:07
Konum: İstanbul
İletişim:

Re: Firebird Veritabanının Limitleri

Mesaj gönderen Kuri_YJ » 18 Ara 2008 09:19

Selamlar,

Biraz geç de olsa ben de bir katkıda bulunayım :)

Text alanlar kullanacaksanız BLOB alanlar kullanın, her blob alan için 10 BYTE yer kayıt içerisinde.

M$-SQL Server'de Kayıt uzunluğu yanılmıyorsam (eğer değiştirmedilerse) ya 8 KB yada 16 KB'a çıkarmışlardı.
FB'de ise bu 64 KB :)

Eğer 1 Kaydının uzunluğu 64 KB'ı aşıyorsa, o zaman oturup mantığını gözden geçirmelisin. Yani DB Dizaynıyla ilgili bir sıkıntın var demektir. Örneğin, bazı yazılımlar gördük, Fatura ve Taksit bilgilerini Bir yıllık, aynı Kayda koymuş. Yani alanlar,

TAKSIT_1, TAKSIT_2, TAKSIT_3 ... diyerek gidiyor. Bu tarz dizaynlar sorunu yaratır.

Dikkat edilecek bir nokta da şu, SELECT'leri, Kaydın büyüklüğü FETCH işlemlerinde yavaşlatır/hızlandırır. Bu nedenle mümkün olduğunca, kayıtları ilişkisel olarak dizayn edip, kayıt büyüklüklerini dikkatli kullanmak lazım. Hızlı bir veri tabanı dizayn etmek istiyorsanız, ilişkileri düzgün hesaplayıp, düzenlemelisiniz, ayrıca kayıtlarda bilgi tekrarı yaptırmamalısınız.

Bu sayede hem hızlı bir veritabanınız olur hem de güvenli.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/

integra_sir
Üye
Mesajlar: 21
Kayıt: 06 Nis 2006 03:01

Re: Firebird Veritabanının Limitleri

Mesaj gönderen integra_sir » 05 Ağu 2010 10:09

Firebird beni hiç yarıyolda bırakmadı...
İlk mesajın üzerinden 2 yıl geçmiş, ben o günlerde açtığım veritbanının limitlerini düşünüyordum. Bugün 60 GB blob datayı sorunsuz çalıştırıyorum. Diğer taraftan normal data 300 MB oldu ve hala ilk günkü gibi. İnternet bağlantı hızıyla alakalı olarak değşiyor sadece hızımız.

Firebird ün tek yanlışı, CPU dan çalışması. onun dışında kusursuz.

Herkese kolay gelsin. İşimiz VT, Gücümüz FB :)

Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2219
Kayıt: 06 Ağu 2003 11:07
Konum: İstanbul
İletişim:

Re: Firebird Veritabanının Limitleri

Mesaj gönderen Kuri_YJ » 05 Ağu 2010 10:26

Maşallah Diyelim ;)

Bir de FB için küçük databaseleri manage etmek için kullanılır filan diyorlar. Bilmeden konuşuyor bazıları ;)
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/

AhmetNuri
Üye
Mesajlar: 250
Kayıt: 02 Tem 2007 06:55
Konum: ist
İletişim:

Re: Firebird Veritabanının Limitleri

Mesaj gönderen AhmetNuri » 05 Ağu 2010 08:03

Fb yi küçük projeler içn kullanan arkadaşlar interbase i nasıl projeler için kullanıyor acaba :))
Ahmet DENİZ

Cevapla