powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как получить количество строк всех таблиц БД DB2 9.7
5 сообщений из 5, страница 1 из 1
Как получить количество строк всех таблиц БД DB2 9.7
    #37981284
Обходчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, добрый день

Прошу помощи в написании запроса. Необходимо по отдельной БД получить кол-во строк всех пользовательских таблиц в ней.
Сразу оговорюсь, что с db2 практически незнаком, данный запрос нужен для короткого теста. Заранее спасибо
---
"Мое дело обход" Ю. Поляков "Козленок в молоке"
...
Рейтинг: 0 / 0
Как получить количество строк всех таблиц БД DB2 9.7
    #37981654
Обходчик,

Например так (выполнять из командной строки db2cmd.exe):
Первая команда создаст файл с запросом по всем таблицам. Если нужно некое подмножество таблиц, можно добавить нужное условие.
В этом файле в последней строке нужно заменить "union all" на "WITH UR FOR READ ONLY;"
Вторая команда выполняет созданный запрос.
Перед выполнением файлов быть не должно, т.к. опция -r дописывает в файл.
Код: powershell
1.
2.
db2 -x -r c:\select_tables.txt select 'select ''"'||STRIP(CREATOR)||'"."'||STRIP(NAME)||'"'' as NAME, COUNT(1) as NUMREC from "'||STRIP(CREATOR)||'"."'||STRIP(NAME)||'" union all' as TEXT FROM SYSIBM.SYSTABLES
db2 -x -td; -f c:\select_tables.txt -r c:\select_tables_count.txt
...
Рейтинг: 0 / 0
Как получить количество строк всех таблиц БД DB2 9.7
    #37981725
Обходчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Хабаров,
Спасибо. Сейчас попробую
...
Рейтинг: 0 / 0
Как получить количество строк всех таблиц БД DB2 9.7
    #37981797
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обходчик,

Здравствуйте.

Помещаете в файл запрос:
row_count.sql
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with a (name, rn_) as (
select '"'||tabschema||'"."'||tabname||'"', rownumber() over()
from syscat.tables
where type in ('T', 'S')
-- фильтр на таблицы, если надо:
and tabschema not like 'SYS%'
fetch first 10 rows only
)
, b (ord, str) as (
select 1
,   case when rn_=1 then 'select sum(cnt) from (' else ' union all' end
  ||' select count(1) cnt from '||name as str
from a
  union all
values (2, ') t(cnt) with ur;')
)
select str
from b
order by ord;

Из командной строки (db2cw, если windows) из каталога с этим файлом:

Код: plaintext
1.
db2 connect to my_database
db2 -xtf row_count.sql -r row_count.txt | db2 +p -t

Для интереса оно вам в row_count.txt длинный запрос сохранит, которым оно будет вам сумму строк считать.
...
Рейтинг: 0 / 0
Как получить количество строк всех таблиц БД DB2 9.7
    #38005068
местный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,статистику собрать реоргчеком, да прошерстить системную таблицу systables (вродебы)- чем не вариант ?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как получить количество строк всех таблиц БД DB2 9.7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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