Вход/Регистрация
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
вернуться

Борри Хелен

Шрифт:

Подробности см. в главе 18, обратите внимание на разделы о наборах символов и последовательностях сортировки далее в этой главе.

Использование памяти клиента

Программы клиента будут выделять память для хранения копий строк, которые они считали из базы данных. Многие уровни интерфейсов выделяют достаточное количество ресурсов для максимального (т. е. определенного) размера значений столбцов фиксированной и переменной длины, даже если фактически никакие данные не сохранены в таком размере. Буферизация большого количества строк может использовать слишком большой объем памяти, и пользователи будут жаловаться на задержки при обновлении экрана и на потерю соединения.

Рассмотрим, например, какое влияние окажет на рабочую станцию запрос, возвращающий 1024 строки, каждая из которых содержит один столбец, объявленный как VARCHAR(1024) . Даже с самым "скромным" набором символов этого столбца потребуется, по меньшей мере, 1 Мбайт памяти клиента. Для столбца Unicode умножьте эту величину на три.

Символьные данные фиксированной длины

Строковые типы данных фиксированной длины в Firebird используются для хранения строк, длина которых является одной и той же или очень близкой, либо там, где фор- мат или относительная позиция символов может передавать семантическое содержание. Обычно они применяются для таких элементов, как идентификационные коды, номера удаленной связи, базирующиеся на символах цифровые системы, а также для объявления полей с целью хранения предварительно форматированных строк фиксированной длины, чтобы конвертировать их в другие типы данных - например, литералы даты Firebird.

Начальные символы пробелов (символ ASCII 32) во вводимых строках фиксированной длины являются значимыми, в то время как завершающие - нет. При сохранении строк фиксированной длины Firebird убирает конечные пробелы. Строки отыскиваются без избыточного расширения до объявленной длины.

Использование типов фиксированной длины не рекомендуется для данных, которые могут содержать значимые конечные символы пробелов, или для элементов, чья фактическая длина может сильно изменяться.

CHAR(n), алиас для CHARACTER(n)

CHAR(n), алиас для CHARACTER(n), является основой символьного типа фиксированной длины, n представляет точное количество хранимых символов. Этот тип данных может хранить строки любого поддерживаемого набора символов.

! ! !

ПРИМЕЧАНИЕ. Если аргумент длины, n, в объявлении отсутствует, то предполагается CHAR(1). Допустимо объявлять односимвольные поля CHAR как просто CHAR.

. ! .

NCHAR(n), алиас для NATIONAL CHARACTER(n)

NCHAR (n), алиас для NATIONAL CHAR(11) , является специализированной реализацией типа CHAR(n) с предварительно установленным атрибутом набора символов iso8859_1. Естественно, недопустимо определять атрибут набора символов для столбца NCHAR, хотя последовательность сортировки - последовательность, в которой будут сортироваться символы для поиска упорядочения вывода, - может быть объявлена для столбца или домена, которые используют этот тип.

Подробные разделы о наборах символов и последовательностях сортировки присутствуют далее в этой главе.

Символьные данные переменной длины

Строковые типы данных переменной длины в Firebird используются для хранения строк, длина которых может изменяться. Обязательный аргумент размера n ограничивает количество символов, которые могут храниться в столбце максимум n символами. Размер типа VARCHAR не может превышать 32 765 байтов, потому что Firebird добавляет два байта к размеру элемента для каждого объекта VARCHAR.

Выбор, хранение и поиск текстов переменной длины

Символьный тип переменной длины используется для хранения текстов, потому что размер хранимой структуры равен фактическому размеру данных плюс два байта. Все символы, введенные в поле переменной длины, трактуются как значимые, включая начальные и конечные пробельные символы.

Транспортировка в сети

До Firebird 1.5 найденные текстовые элементы данных переменной длины дополнялись на сервере до полного, объявленного размера до передачи клиенту. Начиная с Firebird 1.5, данные не дополняются. На момент написания этой книги такая возможность для текстов переменной длины не была выполнена для Firebird 1,0.x, что может повлиять на ваш выбор размера и типа столбца, если вы пишете приложения для удаленных клиентов, соединяющихся с сервером 1,0.x в медленной сети.

Хотя типы переменной длины могут хранить строки почти в 32 Кбайтах, на практике не рекомендуется использовать их для элементов данных, длиннее, чем 250 байт, особенно если их таблицы будут увеличиваться в размерах или если они часто будут субъектом запросов SELECT. Тип данных BLOB с подтипом SUB_TYPE 1 (текст) обычно лучше подходит для хранения больших строковых данных. Тексты BLOB подробно обсуждаются в следующей главе.

VARCHAR(n), алиас для CHARACTER VARYING(n)

VARCHAR(n), алиас для CHARACTER VARYING(n), является базовым строковым типом переменной длины, n представляет максимальное количество символов, которое может сохраняться в столбце. Этот тип хранит строки любого поддерживаемого набора символов. Если никакой набор символов не указан, атрибут примет значение набора символов по умолчанию, который был определен в операторе CREATE DATABASE в предложении DEFAULT CHARACTER SET. ЕСЛИ не существует набора символов по умолчанию, то столбец получит CHARACTER SET NONE.

  • Читать дальше
  • 1
  • ...
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: