Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 229
от 24.10.2006, 22:05

Администратор:CJ
В рассылке:Подписчиков: 269, Экспертов: 37
В номере:Вопросов: 1, Ответов: 3


Вопрос № 59447: Сталкивались ли вы с такой проблемой? В базе данных InterBase создано поле VARCHAR(500). При определенном количестве символов (~300-400) в этом поле во время выполнения запроса возникает ошибка. Запрос такого рода (select ... group by <это поле>...

Вопрос № 59.447
Сталкивались ли вы с такой проблемой? В базе данных InterBase создано поле VARCHAR(500). При определенном количестве символов (~300-400) в этом поле во время выполнения запроса возникает ошибка. Запрос такого рода (select ... group by <это поле>), то есть при группировке по этому полю. Ошибка: потеря соединения с сервером InterBase. Подскажите есть ли ограничения по размеру поля, по которому производиться группировка. Связано ли это с тем, что при количестве символов > 255 поле не индексируется. (хотя 256 символов работают - проверял). Заранее спасибо...
Отправлен: 19.10.2006, 10:05
Вопрос задал: Kotsa (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Kotsa!
Скорее всего это ошибка построения индекса по group by
предельный размер индекса зависит от нескольких факторов для одиночного поля и 1-байтной кодировки этот размер 256-12=244 символов. Более точно в конкретном случае определяется опытом. Просто определи поле и построй индекс в случае ошибки уменьши размер поля. В предыдущих версиях этот размер равен 176 символов.

В случае нескольких полей все сложнее. Лучше тестировать.
---------
Если дело заслуживает быть сделаным, то оно заслуживает чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Практикант)
Ответ отправлен: 19.10.2006, 10:17

Отвечает: sir henry
Здравствуйте, Kotsa!
До версии 2.0 длина любого индекса не должна была превышать 252 байта. В версии 2.0 это ограничение убрали, теперь размер индекса зависит от размера страницы. Однако сами понимаете, что чем больше размер индекса, тем больше замедляется работа с данными.
Group by использует индекс, если он есть по этому полю. Выводы делайте сами. :)
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 19.10.2006, 10:49

Отвечает: Viktor_sh
Здравствуйте, Kotsa!
В своих базах, я стараюсь поля VARCHAR не делать больше 255 символов, если больше использую BLOB. Попробуйте перестроить базу, если это возможно.
Ответ отправил: Viktor_sh (статус: 1-ый класс)
Ответ отправлен: 19.10.2006, 19:57


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное