powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA и хранение BLOB
19 сообщений из 19, страница 1 из 1
ASA и хранение BLOB
    #32581778
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как лучше хранить картинки к изделиям, в самой таблице изделий или в отдельной таблице.
Влияние на производительность выборки списка изделий?
Репликация ?
Доп. трудности?

Сервер ASA 9.0.1
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32581796
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранить можно вместе, влияния на производительность или еще чего не будет - уже с времен DBF все системы хранят BLOB-ы отдельно от данных :)
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582522
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть это и необъяснимо, но когда мы стали хранить поля типа BLOB в отдельных таблицах, производительность запросов к этим таблицам возросла. Я говорю об ASA 6,7,8.

Частью это обясняется спецификой клиентского приложения (Delphi + BDE), но как обяснить скорость JOIN-ов я не знаю. Причем, нигде SELECT * к этим таблицам не обращаемся.

Это лишний раз доказывает, что есть теория, а есть практика :)
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582618
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSELECT db_property ( 'BlobArenas' )
Если вернет "ON", то в БД блобы храняться отдельно от страниц таблиц, если "OFF", то вместе.
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582673
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'BlobArenas' - это начиная с ASA 8, а как сделать чтобы хранились BLOB отдельно?
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582702
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с ASA начал работать начиная с 8-ки и как блобы в более ранних версиях храняться честно говоря не знаю. В 8-ке и 9-ке новая БД всегда создается с BlobArenas=ON. Так что по идее нужно выгрузить базу, создать ее в новой версии ASA и загрузить. Опциями ее никак включить нельзя. Например тоже самое относиться и к CHECKSUM на страницы - возможность появилась в ASA 9.01, но включить ее можно, только перегрузив БД, даже не смотря на то, что БД вроде как создавалась ASA 9.00
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582748
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за ответ.

Если я правильно понял, то никого upgrade БД не будет? То есть только выгрузка и загрузка.

Не гуманно. Интересно, что еще нужно сделать Sybase, чтобы растаться со своими клиентами? Поневоле на MS SQL уйдешь, если только UNIX не дорог.

Очень тяжело поддерживать ASA в составе своего тиражируемого решения. Бесконечные баги, фичи и EBFы. MS SQL на два порядка лучше оттестирован ( фанам Sybase - я не говорю про функционал, я говорю про устойчивость продукта и приемственности версий).
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582831
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли я правильно понял, то никого upgrade БД не будет? То есть только выгрузка и загрузка. Не гуманно.
Так никто Вам не навязывает. Не перегружайте БД и работайте, но на уровне физического хранения данных останется старый формат БД. В любой СУБД при смене версии нужно мигрировать БД, особенно если изменился физический формат хранения БД. Ничего страшного честно говоря не вижу, тем более что существуют автоматические визарды/утилиты для перезагрузки баз данных. В том же MSSQL БД с 6.5 на 7.0 так просто не мигрировались (думаю и MSSQL2000->MSSQL2005 не будет исключением).

авторMS SQL на два порядка лучше оттестирован
Тута я не согласен - без 3-его сервис пака лучше MSSQL в кач-ве тиражирумой СУБД не ставить, лучше спать будешь. Тоже самое можно сказать и про ASA - как минимум должна быть первая подверсия, а еще лучше вторую, чтобы тоже спать спокойно. Например 9.00 я гонял для ознакомления и выявления багов (мной было заявлено и в течении пару месяцев исправлено где то 6 багов, из них 2 действительно неприятных). Начиная с 9.01 я поставил сервак на промышленную эксплуатацию и особо не жалуюсь. Так что насчет бесконечных багов не согласен - начиная с 9.01 у меня и клиентов ASA работает как часы, за последние 2 месяца мной и коллегами был обнаружен и заявлен баг в механизме работы с удаленными серверами, думаю со следующим EBF они его уже поправят.

P.S. А вообще то я наоборот считаю, что ежемесячные EBF и открытый интерфейс между разработчиками СУБД и пользователями, где можно заявить о баге или попросить добавить новую возможность, гораздо эффективнее шаманских иногда выходящих сервис паков для MSSQL, где может быть изначально проблем действительно меньше, но те которые есть не решаются годами и никто не смотрит, чего там хотят пользователи, а развитие продукта определяется маркетинговыми политиками из MS. Ну а на личном опыте могу сказать - выход сервис пака похож на молитву - ставишь его и смотришь, помогло или не помогло.
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582865
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИнтересно, что еще нужно сделать Sybase, чтобы растаться со своими клиентами? Поневоле на MS SQL уйдешь

Это провокационный пост. :) Давайте не будем флеймить здесь что лучше, а что хуже. Если у кого-то предметные соображения по сравнению ASA и MSSQL, то пусть выскажет, а нет, так и не надо. И вообще лучше завести топик в "Сравнении СУБД", а здесь ссылку выложить.
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582870
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для перевода БД со структыры ASA 6 на структуру 7 можно было воспользоваться утилитой dbupgrade, я ее и имел в виду. А unload-reload - плохо запускать у клиента без своего личного присутствия по многим причинам
1. Долго
2. Требует много места на диске
3. Создается НОВАЯ БД, которую еще надо на старую заменить, а образования не всех клиентов хватает
4. и т. д.

А насчет MS SQL, нам почему-то его легче поддерживать. А баги в ASA бывают очень не приятные. Такое впечатления, что некоторые утилиты или команды просто при тестировании не трогают вообще, они просто падают при первом же обращении. :(
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582872
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только написал, а ASCRUS уже ответил.
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32582988
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДля перевода БД со структыры ASA 6 на структуру 7 можно было воспользоваться утилитой dbupgrade, я ее и имел в виду. А unload-reload - плохо запускать у клиента без своего личного присутствия по многим причинам
1. Долго
2. Требует много места на диске
3. Создается НОВАЯ БД, которую еще надо на старую заменить, а образования не всех клиентов хватает
4. и т. д.
DBUPGRATE меняет только системные обьекты БД (создает новые, правит существующие) и докатывает появившиеся опции. Физическую структуру БД она не трогает. Остальное по пунктам:
1. Честно говоря не верю. LOAD/UNLOAD работает моментально.
2. Согласен, но это разовая операция и думаю у клиентов давно уже не 2-х гиговые винчестеры стоят
3. Для всего этого существуют скриптовые языки ОС, которые позволяют автоматически описать операции:
- забакупить, выгрузить и остановить на сервере существующую БД
- создать новую БД, выполнить скрипт загрузки в нее и остановить на сервере
- скопировать новую БД поверх старой
- запустить новую БД на сервере
Все это реально можно автоматически проделать в том же BAT-файле, так что не вижу необходимости чьего то личного присутствия или достаточной граммотности у клиентов.

авторА баги в ASA бывают очень не приятные. Такое впечатления, что некоторые утилиты или команды просто при тестировании не трогают вообще, они просто падают при первом же обращении. :(
Пожалуйста парочку примеров о каких багах идет речь для ASA начиная с версии 8.02 ? Я например, могу ASA до 9.01 хорошенько вышибить, но все мои приемы на активацию багов будут довольно специфичны, не используются в реальной эксплуатации БД и были обнаружены случайно в процессе копания в ее потрохах. Хотелось бы услышать о реальных проблемах в 8-ке, чтобы потестировать на предмет их наличия в 9-ке, у нас тоже тиражные продукты, которые со следующего года будут очень маштабно распостраняться и подстраховаться на существующем опыте совсем не помешает :)
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32583382
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что было в ASA 8 (до 8.0.3) (всего не вспомнили, помним, что было много глюков)
- нестабильная работа на Win 2000 Server (потеря коннекта и т.д., на Novell нормально), после перехода на 8.0.3 все стало ОК
- проблемы с cp866
- Sybase Central балы просто волшебной, падала на запросах, не устанавливалась

LOAD/UNLOAD работает моментально - Вы пробовали БД 2Гб пересоздавать, причем много полей типа BLOB, много индексов, связей?

Работы - часа на 2. Может мы говорим о разных инструментах, я говорю о dbunload и isql reload.


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


А если сервер на Novell, а если доступа к диску на сервере у клиента нет? Тут без присутствия спеца лучше и не начинать. Данных-то жалко.
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32583542
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ASCRUS

Что плохо или чего не хватает в ASA 8
- существуют ошибочные запросы, который могут остановить сервер!!! Например, создание временной таблицы с двумя одноименными полями - это конечно же ошибка, но зачем же сервер останавливать!
- неоправданные блокировки при модификации таблицы (точнее в ряде случаев остается разделяемая блокировка после SELECT, которая не дает модифицировать другому пользователю таблицу)
- Порча баз (Assertion error)
- отсутствие аналога DBCC
- отсутствие удобного аналога DBSHRINK
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32583759
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА если сервер на Novell, а если доступа к диску на сервере у клиента нет? Тут без присутствия спеца лучше и не начинать. Данных-то жалко.
С Novell я только в прошлом веке работал, поэтому ничего про него сказать не могу. Однако думаю там тоже должен быть соотвествующий скриптовый язык или модуль, позволяющий автоматизировать процесс работы выгрузки/загрузки.

автор- существуют ошибочные запросы, который могут остановить сервер!!! Например, создание временной таблицы с двумя одноименными полями - это конечно же ошибка, но зачем же сервер останавливать!
Если ошибка в движке, то остановка сервера правильное решение. Например в MSSQL критические ошибки не останавливают сервер, а просто выдают внутренние сообщения, которые отлавливаются профайлером. Это не есть гуд, так как у нас было полно ситуаций, где на тестовой БД MSSQL все было гуд, а у клиентов на реальных БД творились чудеса, чтобы отловить которые и понять, где MSSQL глючит пришлось профайлить сутки работы сервера.

автор- неоправданные блокировки при модификации таблицы (точнее в ряде случаев остается разделяемая блокировка после SELECT, которая не дает модифицировать другому пользователю таблицу)
Это правильное поведение - пока клиентское приложение после выполнения SELECT не даст знать серверу с помощью COMMIT, что она все считала и таблица ей больше не нужна, сервер просто обязан наложить SHARE блокировку на таблицу. Иначе представьте себе ситуацию, где клиентское приложение курсором считало только половины записей, а другой пользователь стал модифицировать структуру таблицы. Сразу бы возник вопрос - что делать с открытым курсором.

автор- Порча баз (Assertion error)
Как я уже раньше писал один раз у меня было на 8-ке, но это случилось "благодаря" железу. Чтобы БД запортилась сама по себе или при неожиданном выключении сервера честно говоря не наблюдал. На 9-ке вообще еще ни разу не удалось грохнуть БД, даже при таких критических ситуациях, как добавление больших массивов записей через LOAD TABLE (который как известно не регистрирует их в логе) и нехватке места на винчестере для БД или же временных таблиц.

автор- отсутствие аналога DBCC
Все что делает DBCC в ASA аналогичным образом дублируется соотвествующими операторами, системными ХП и утилитами.

автор- отсутствие удобного аналога DBSHRINK
Согласен - удобная штука. Хотя в принципе если рассматривать БД, как хранилище данных, в которых наиболее частая операция - это добавление, далее обновление и самая редкая - удаление, то получается, что сжатие БД - операция редкая и применяемая только после удаления большого обьема данных в БД. В других же случаях она абсолютно бесполезная, так как ASA при удалении страниц помечает их как не использованные и далее использует их при вставке новых записей.


Теперь по поводу перегрузки БД. Я не поленился и проделал это сейчас на своей рабочей машине. Что получилось:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Конфигурация сервера:
P4 -  2500  Hyper Terminating 
RAM  1  GB 
 2  SATA100 винта по  120  GB (RAID контроллер отключен)
Windows XP SP1

Конфигурация ASA  9 . 0 . 1 . 1862 :
разрешена работа на  2  проца
кэш: статический  400  MB, запущен через AWE
БД и лог без разделения пространства на одном винте

Характеристики БД:
Размер:  3 . 395  GB
создана в ASA  9 . 00 
CHECKSUM = OFF
Таблица с максимальным кол-вом записей:  15  млн
Размер страницы:  16  кб

Выгрузка:
Время:  7  минут
Средняя загруженность  2  процессоров:  46 %
Рамер скрипта RELOAD.SQL:  9  МБ
Размер DAT файлов:  2 . 4  GB
Самый большой DAT файл:  433  MB

Загрузка:
БД на  16  кб странице, CHECKSUM = ON
Время:  1  час  10  мин
Средняя загруженность процессоров:  56 %
Размер БД:  3 . 387  GB
Во время перезагрузки я продолжал работать, т.е. у меня крутился еще инстанс рабочей базы ASA, открыт Central, ISQL, PB, в которых я продолжал писать проект, запущен WMP9 и т.д. Неудобств или тормозов в плане работы отмечено не было - не тормозила даже Central (хотя во многом благодаря тому, что под нее выделено 128MB памяти).

Так что насчет долгово процесса - это зря, хотя стоит заметить, что в 9-ке была оптимизированна работа LOAD TABLE, в т.ч. и с блобами. Ну и еще стоит не забывать про оператор REORGANIZE TABLE, который работает очень медленно, но позволяет дефрагметрировать таблицы и индексы в онлайн, не блокируя их на время работы.
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32583840
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ASCRUS

Спасибо за развернутый ответ!

Не по всем пунктам с Вами согласен.

По поводу выгрузки и загрузки - Вы на приличной машине получили 1 час 10 мин, я говорил о 2-х часах. Цифры одного порядка.

Выгрузка и загрузка вместо SHRINK и UPGRADE это конечно же метод, но "Какой способ выбрать Tide или кипячение?" на ASE или MS SQL - Вы выберете Tide (SHRINK и UPGRADE), а не создание новой БД и долгий перенос в нее данных.

По поводу DBCC я имел в виду процедуры ремота, а в ASA их просто нет.

По поводу SHRINK - ASA при удалении все-таки оставляет пустоты, да еще какие. Лечится только "кипячением" (см. выше)
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32583860
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ASCRUS

Кстати, насчет блокировок - COMMIT был сделан!!! Ошибка плавающая. Ошибку Sybase CIS признал, говорят в ASA 9 все должно работать (вроде бы) .
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32583917
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм, в ASA9 COMMIT для SELECT действительно прекрасно работает. Насчет SHRINK тоже спорить не буду - нет и бог с ней, если бы была, то не отказался бы :) А то говорить о ненужности фичи, это как слушать рассуждения DB2-шников, которые говорят - а на кой нам ХП, ни разу в жизни не пригодились (для тех кто не знает - в DB2 нет языка хранимых процедур) :)

В общем с Вами я тоже во многом согласен, приятно встретить человека, занимающегося эксплуатацией ASA на нормальных промышленных обьемах. Беда только в том, что я знаком с технологиями Sybase (ASA, PD, PB) только год и по настоящему щупал именно их последние детища. Так что конечно же мне сложно оценить кол-во багов/глюков в более младших версиях. Как начнете тестировать 9-ку, будет интересно послушать, где и что сплыло и обьединится для коррекции действий по поводу работы на ASA9, заявления багов в Sybase.com, дописания CODE EXCHANGE, FAQ и т.д. Плюс я все никак не выберу время заполнить и запустить ресурс "Russian Sybase User Group" (RUSUG), движок которого готов и он будет базироваться прямо на SQL.RU и поддерживаться мной, членами RUSUG и Sybase CIS. Там бы тоже можно было выкладывать решения и рекомендации. Так же материал потихоньку у нас по ASA и в FAQ копиться, что совсем неплохо.
...
Рейтинг: 0 / 0
ASA и хранение BLOB
    #32584576
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ASCRUS

Если появится "Russian Sybase User Group" (RUSUG) - то это есть очень хорошо!

Вообще, в последнее время популярность Sybase все-таки стала потихоньку расти в России, и это радует. Появились неплохие форумы (например этот), переведена часть документации (за это - огромное спасибо сотрудникам Sybase CIS). Наконец-то что-то происходит.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA и хранение BLOB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]