Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем! DB2 WSE 9.7.6. Помогите, пожалуйста, со скриптом. Нужна выборка, которая бы показывала длину записи по каждой таблице в байтах. Например, в БД есть таблица с полям (ID bigint, NAME varchar(1000)), тогда в выборку должна попасть информация: Код: plsql 1. Можно ли реализовать такой скрипт? С уважением, Семен Попов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 11:15 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Semen Popov, AVGROWSIZE в sysibm.systables подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 12:00 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
AVGROWSIZESemen Popov, AVGROWSIZE в sysibm.systables подойдет?Не то. Проверил - выдает совсем непонятные цифры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 16:27 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Semen Popov, Здравствуйте. Как-то так Код: sql 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. 31. 32. 33. Т.е. в запросе учитываются служебные байты тоже. Взято из CREATE TABLE (таблица byte count). Можете добавить в запрос про XML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 16:35 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Тут надо копать SYSCOLUMNS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 16:35 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, спасибо. То что надо. Мы работаем с базой с размером страниц 4К, а разработчик предлагает перейти на БД с размером 32К. Предоставляет резервную копию эталонной базы, чтобы мы ее развернули у себя. Но их база совершенно пустая и содержит "кривые" таблицы (или какие-то вообще не содержит). То есть надо будет много чего под нас затачивать. Но тем не менее, я понимаю, если не перейти на 32К, то это потом может плохо для нас обернуться. Если разработчик захочет добавить какие-нибудь длинные поля в таблицу или новую таблицу с длиной записи более 4К, то это в текущей базе сделать будет невозможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 16:48 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Semen PopovЕсли разработчик захочет добавить какие-нибудь длинные поля в таблицу или новую таблицу с длиной записи более 4К, то это в текущей базе сделать будет невозможнотут есть варианты. 1. Вы можете бороться с длинными (VAR)CHAR'ами, преобразовывая их в CLOB. Начиная с 9.7.3, если актуальная длина значения не больше 32K, то вы сможете эти поля сравнивать. Правда, сортировать, группировать и индексировать их нельзя. Beyond 32k? How to overcome the 32 KB pagesize limit . 2. В 10.5 появилась поддержка Extended row size . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 18:20 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, к сожалению мы не имеем права менять структуру БД разработчика. Поэтому преобразованием заниматься не будем. Думаю, правильно будет перейти на эталонную БД. Правда, еще не могу оценить, что за этим последует. Скажите, а поменять размер страницы у текущей БД есть возможность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 10:45 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Semen PopovСкажите, а поменять размер страницы у текущей БД есть возможность?Размер страницы вы задаёте на уровне табличного пространства, когда его создаёте. Потом размер страницы менять у этого пространства нельзя. На уровне базы вы задаёте размер страницы по-умолчанию, который будет использоваться, если при создании буферного пула или пространства вы не указали размер страницы. Менять этот параметр тоже нельзя. Если вы вдруг выяснили, что добавить (расширить) поле в таблице нельзя из-за того, что новый размер записи не влезает в страницу, то вы можете перенести таблицу в другое пространство с бОльшим размером страницы с помощью ADMIN_MOVE_TABLE . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 11:23 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, спасибо. Скажите, а может ли размер страницы табличного пространства влиять на производительность БД? Сейчас все таблицы имеют длину записи, не превышающую 4К. Разработчики предлагают переходить на 32К, объясняя это еще и тем, что производительность улучшится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 15:01 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Semen Popov... Сейчас все таблицы имеют длину записи, не превышающую 4К. Разработчики предлагают переходить на 32К, .... Имеется в виду, что разработчики предлагают переходить на БД с размером страницы 32К, хотя в структуре сейчас нет таблиц с длиной записи, превышающей 4К ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 16:31 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Semen Popov, Обычно для преимущественно транзакционных систем выбирают страницу в 4-8K, для хранилищ - 16-32K. Вкратце: В oltp системах, как правило, доступ к записям случайный, поэтому, чтобы поднять запись в память, надо будет делать IO меньшего размера. Конкурентное обновление записей на одной и той же странице также имеет свои накладные расходы, поэтому эффективнее держать меньше записей на одной странице. В хранилищах преобладают массивные сканирования, и для того, чтобы, скажем, прочитать значительный объём данных, эффективнее меньшее кол-во IO, но бОльшего размера каждое. Конкурентное обновление данных на одной странице не так часто происходит. Но вам надо слушать разработчиков, они свою систему должны знать лучше. Если они так советуют, значит у них есть на это какие-то причины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 17:16 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, большое спасибо. Mark Barinstein... Но вам надо слушать разработчиков, они свою систему должны знать лучше. Если они так советуют, значит у них есть на это какие-то причины.Полностью с Вами согласен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 19:51 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinКонкурентное обновление записей на одной и той же странице также имеет свои накладные расходы, поэтому эффективнее держать меньше записей на одной странице. Поясните, пожалуйста, правильно ли я понимаю? При маленькой длине записи и большем (в несколько раз) размере страницы на этой странице размещаются много записей и их конкурентное обновление будет вести к падению производительности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 20:04 |
|
||
|
Длина записи таблицы в БД
|
|||
|---|---|---|---|
|
#18+
Semen PopovПоясните, пожалуйста, правильно ли я понимаю? При маленькой длине записи и большем (в несколько раз) размере страницы на этой странице размещаются много записей и их конкурентное обновление будет вести к падению производительности?Ну, это на практике больше относится к индексным страницам, и при определенном характере нагрузки и стечении обстоятельств вы можете обнаружить падение производительности из-за конкурентного обновления. Основная идея всё-таки в том, что для случайного доступа io эффективнее на меньших по размеру страницах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2013, 13:40 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38470166&tid=1601249]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 168ms |

| 0 / 0 |
