RUNSTATS ON TABLE SchemaName.TableName 
  WITH DISTRIBUTION ON KEY COLUMNS 
  AND SAMPLED DETAILED INDEXES ALL;

А еще вот кусок кода для отключения статистических профилей в базе, создаваемой 1С:
Read more... )
Как добавить в DB2 функцию для расчета хеш-кода по алгоритму SHA-1 (или любому другому поддерживаемому Java):

(а) Начиная с версии 11.1, алгоритмы MD5, SHA1, SHA2_256 и SHA2_512 доступны через встроенную функцию HASH(), которую можно обернуть в вызов встроенной функции HEX() для получения текстового значения.

Использование:
VALUES HEX(HASH('Вассисуалий Алибабаевич', 1));



(б) В более ранних версиях, либо для не поддерживаемых типов хеша, приходится использовать Java UDF.
Read more... )
Содержимое файла /opt/IBM/informix/etc/sqlhosts.ol_informix1210:
ol_informix1210 onsoctcp toster ol_informix1210
dr_informix1210 drsoctcp toster dr_informix1210
lo_informix1210 onsoctcp 127.0.0.1 lo_informix1210


Команды для создания библиотеки libdb2informixF.so:
sudo su
export INFORMIXDIR=/opt/IBM/informix
/opt/ibm/db2/V10.5/bin/djxlinkInformix


Содержимое файла /home/db2inst1/sqllib/cfg/db2dj.ini:
INFORMIXDIR=/db2extra/ifx/informix
INFORMIXSERVER=ol_informix1210
INFORMIXSQLHOSTS=/db2extra/ifx/informix/etc/sqlhosts.ol_informix1210
GL_USEGLU=1
CLIENT_LOCALE=ru_RU.utf8


Набор команд процессора DB2 по подключению к серверу:
create wrapper informix;
create server ifx type informix version 12.10 wrapper informix options (node 'ol_informix1210', dbname 'demo');
create user mapping for db2inst1 server ifx options (REMOTE_AUTHID 'informix', REMOTE_PASSWORD 'passw0rd');
set passthru ifx;
SELECT count(*) FROM informix.systables;
set passthru reset;
Структура и наполнение базы данных с реального проекта небольшого аналитического хранилища.
Сверху 10 крупнейших таблиц в "построчной" классической организации, имя (скрыто), количество страниц (по 32 килобайта) и процент пространства, сэкономленного за счет сжатия данных.
Снизу те же 10 крупнейших таблиц (получилось, что в том же порядке) в "поколоночной" организации данных для DB2 BLU Acceleration.
Read more... )
К слову, у основных конкурентов что в построчном, что в поколоночном вариантах степень сжатия обычно намного хуже получается.
Тов. Lennart Poettering в частности, и авторы systemd в целом, не понимают значение слова "совместимость".
Иначе бы они не сделали свою новую прекрасную систему инициализации так, что она не способна выполнять старые добрые init-скрипты спотыкается на малейшем отступлении от выдуманного её авторами жёсткого шаблона.

Цитата вот отсюда: For compatibility with SysV we not only support our own configuration files for services, but also are able to read classic SysV init scripts, in particular we parse the LSB header, if it exists. /etc/init.d is hence not much more than just another source of configuration.

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

У-у-у! Школота линуксовая!

Read more... )

Решение проблемы: скопировать из каталога инсталляции TSAMP скрипты в каталог инициализации /etc/init.d (заменив ими ссылки, которые там размещает инсталлятор TSAMP).

Read more... )
Как сделать почти что Oracle database link (DBLINK) между двумя базами данных DB2 (alpha и beta), размещенными на двух серверах СУБД (db2-alpha и db2-beta), в каждом из которых развёрнут экземпляр DB2 по имени db2inst2:
Read more... )

UPDATE: для интересующихся подробностями вот
старая, но вполне грамотная статья на developerWorks
.
All database deadlocks fall into one of the following categories:
1. A row-level deadlock is always the application's bug
2. A table- or partiton-level deadlock caused by:
  (a) explicit application-controlled locking -
the application's bug
  (b) lock escalation - a configuration or application design issue
  (с) implicit operations at statement compilation stage - a DBMS bug
4. A deadlock involving any type of locks/latches on internal DBMS structures is always a DBMS bug

Навеяно работой.

UPDATE: В итоге оказалось, что 2(c) дискуссионно, поскольку настройки СУБД могут предписывать определенное поведение при компиляции запросов. В том числе и сбор статистик с блокировкой всей таблицы - хотя по моему скромному мнению, наличие таких настроек является дефектом дизайна СУБД.
Сегодня мои усилия по формальному подтверждению квалификации дали некий пристойный результат - я успешно сдал IBM Exam 731 и теперь с полным правом могу именоваться "DB2 9 DBA for LUW".

Теперь ещё надобно аналогичную степень от Oracle получить. А потом ещё, наверное, пару разработческих сертификатов - и будет вчерне готов иконостас для введения работодателя в должное состояние. :)

Update: Чуть позже чисто по приколу без всякой подготовки прошел стартовый экзамен для получения статуса Ораклового DBA - 1Z0-051 "Oracle Database 11g: SQL Fundamentals I" (благо его можно проходить, не вставая из-за своего домашнего компьютера). Примерно к середине теста заподозрил, что, вероятно, выкинул $125 на помойку - вопросы стали касаться тонких деталей, которые лично моя память удерживать не привыкла. В итоге, по счастью, результат получился положительный, но больше такими экспромтами заниматься явно не стоит.
Наконец-то подобрал комплект настроек гостевого окружения OpenVZ, при которых в этом окружении нормально работает DB2 9.7 Express-C со всеми своими графическими утилитами администрирования и прочими плюшками. Целью было создание среды для разработки.

Мучался довольно долго, потому как никакой внятной информации на эту тему не нашел (кроме формального подтверждения, что IBM сертифицировала Virtuozzo для работы DB2 9), а подбор методом проб и ошибок выявил массу грабель. Основная засада заключается в том, что OpenVZ скрупулёзно учитывает объем виртуальной памяти, которую DB2 (и особенно его средства настройки) жрёт без меры. При всём этом использование физической памяти оказывается не особенно большим, по нынешним-то меркам.

В итоге добился вполне комфортной работы одновременно с двумя базами данных (одна довольно большая, другая поменьше), причём как сами БД, так и средства администрирования запускаются в гостевом окружении OpenVZ.

Итого записываю сухой остаток, чтобы не забыть в будущем:

Много букв... )
Page generated Jun. 27th, 2025 03:32 am
Powered by Dreamwidth Studios