AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird 1.5: key size too big for index
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird 1.5: key size too big for index

Ein Thema von dust258 · begonnen am 1. Jun 2010
Antwort Antwort
dust258

Registriert seit: 18. Aug 2008
62 Beiträge
 
#1

Firebird 1.5: key size too big for index

  Alt 1. Jun 2010, 12:52
Datenbank: Firebird • Version: 1.5 • Zugriff über: IbExpert
Hallo Leute,

ich habe ein Tool mit dem ich Tabellen in einer bestehenden Datenbank anlege.
z.B.

CREATE TABLE TESTTABELLE(
ID INTEGER NOT NULL,
DBID INTEGER NOT NULL,
TEXT VARCHAR(240),
PRIMARY KEY (ID,DBID))

CREATE INDEX TESTINDEX ON TESTTABELLE (TEXT)

Jetzt habe ich schon öfter den Fehler "key size too big for index" bekommen.


Der Fehler tritt nur bei Firebird 1.5 auf. Das hängt wohl damit zusammen das ab 2.1 die Begrenzung von 252 bytes pro Index aufgehoben wurde (bzw. auf 1/4 des Pagesize gesetzt wurde).

Ich vermute den Fehler also in der Charset/Collection. Die meisten Datenbanken haben ein WIN1252 Charset. Da dies Singelbyte ist sollte es doch IMO immer möglich sein Felder bis zu einer Länge von 252 Länge zu indizieren (das war meine 1. Frage ).

Also kann dieser Fehler nur Auftreten wenn das Charset Multibyte ist (z.B. UNICODE_FSS) und dadurch mehr Bytes benötigt. Also liegt die Maximale größe eines Indizierbaren Feldes UNICODE_FSS bei 84 Zeichen (da bis zu 3 Bytes für ein Zeichen benötigt werden). Oder gibt es Situationen in denen es höher sein kann? (Frage Nr2.)

Und wenn das alles so Stimmt: Wie verhält es sich mit Firebird 2.1? Benötigt ein Feld mit dem Charset UNICODE_FSS hier ebenfalls 3 Bytes pro Zeichen?


Ich war schon auf ewig vielen Seiten und ich hoffe das kann mir Jemand so bestätigen, bzw. mich berichtigen...



Ein paar Quellen:

Ein Indexberechner:
http://www.volny.cz/iprenosil/interb...calculator.htm

Charsets und Collations in Firebird:
http://ibexpert.net/IBE/INDEX.PHP?n=...ollationOrders

Firebird 1.5 Charsets:
http://www.firebirdsql.org/index.php...b_1_5_charsets
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz