AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken GUIDToString: welche Feldgrösse in der DB?
Thema durchsuchen
Ansicht
Themen-Optionen

GUIDToString: welche Feldgrösse in der DB?

Ein Thema von Delbor · begonnen am 3. Mär 2016 · letzter Beitrag vom 3. Mär 2016
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#1

AW: GUIDToString: welche Feldgrösse in der DB?

  Alt 3. Mär 2016, 12:09
Ja, 36 Zeichen sind auch 36 Zeichen, aber vom "internen" Speicher her halt nicht.

DBMS arbeiten gern mit festen Größen.
36 Unicode-Zeichen brauchen immer 36*2 Byte.
Als ANSI, je nach CodePage 36 Byte oder mehr. (MultiByteZeichensätze)
UTF-8 ist im Prinzip "ANSI" mit der Codepage 65001.

UTF-8-Zeichen können bei "UCS2" bis zu 4 Byte pro Zeichen benötigen und wenn das DBMS jetzt eine feste Größe braucht/will, dann muß es von einem String mit maximaler Länger und mit den "schlimmsten" Unicode-Zeichen ausgehen.
MaxString := #65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535;

Voller UTF-16-Umfang (#0..#$10FFFF) ging bis zu 5 Byte in UTF-8 (glaub ich) und genau 2 Byte ohne und 4 Byte mit Surrogates im UTF-16.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Mär 2016 um 12:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: GUIDToString: welche Feldgrösse in der DB?

  Alt 3. Mär 2016, 13:18
Ja, 36 Zeichen sind auch 36 Zeichen, aber vom "internen" Speicher her halt nicht.

DBMS arbeiten gern mit festen Größen.
36 Unicode-Zeichen brauchen immer 36*2 Byte.
Als ANSI, je nach CodePage 36 Byte oder mehr. (MultiByteZeichensätze)
UTF-8 ist im Prinzip "ANSI" mit der Codepage 65001.

UTF-8-Zeichen können bei "UCS2" bis zu 4 Byte pro Zeichen benötigen und wenn das DBMS jetzt eine feste Größe braucht/will, dann muß es von einem String mit maximaler Länger und mit den "schlimmsten" Unicode-Zeichen ausgehen.
MaxString := #65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535;

Voller UTF-16-Umfang (#0..#$10FFFF) ging bis zu 5 Byte in UTF-8 (glaub ich) und genau 2 Byte ohne und 4 Byte mit Surrogates im UTF-16.
Ein VACHAR(36) ist ein String mit bis zu 36 Zeichen Länge. Welcher Zeichensatz (und damit wieviel "interner" Speicher), das wird über die Collation (u.U. hintenrum über eine Domäne) festgelegt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: GUIDToString: welche Feldgrösse in der DB?

  Alt 3. Mär 2016, 15:33
Hi zusammen

Wie lese / verstehe ich das nun:
Zitat:
utf8 | UTF-8 Unicode | utf8_general_ci |
Mein Server steht aktuell auf utf8. Wenn ich das wirklich so verstehen kann, wie ich glaube, das zu verstehen, so kann der Server mit den Unicode-Strings von Delphi umgehen, was wiederum heisst, dass der Datentyp VARCHAR(36) auch OK wäre.
Allenfalls bliebe die Frage der Performance.
Nur mit Blick auf die Uhr "gemessen", ergab sich unter Win32(4MB) für ein Insert von gut 200 Fotos eine ungefähre Zeit von über 20 Minuten (mit Eintrag der RAW-Daten) gegenüber etwas mehr als 7 Minuten (Plus 2?) unter Win64/8MB (Ohne RAW-Eintrag).

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  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 08:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz