Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как достать из partnum номер чанка? / 21 сообщений из 21, страница 1 из 1
01.06.2005, 11:50
    #33094386
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Может быть это невозможно?

partnum chunk
5242938 10
5259898 5
...
Рейтинг: 0 / 0
01.06.2005, 12:11
    #33094464
В.К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
ТанМожет быть это невозможно?

partnum chunk
5242938 10
5259898 5

Оба ваши partnum-а (идентификатор фрагмента ТАБЛИЦЫ) - в пятом DB-пространстве. Переведите в шестнадцатеричный вид и отбросьте последних пять цифр - будет вам номер пространства. Или так: partnum/1048576. А вот номер чанка получают аналогичным образом по физическому адресу СТРАНИЦЫ (pg_addr, первые 4 байта на странице).

Именно так, поскольку Tblspaces Tbspace всегда находится в первом чанке пространства, а partnum просто указывает на соответствующую его страницу, описывающую таблицу (фрагмент).

Такие дела.
...
Рейтинг: 0 / 0
01.06.2005, 12:16
    #33094487
В.К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Да, и если в первом чанке пятого пространства меньше, чем 0x0000427A страниц (17018, т.е. 68072 Кбайт при 4К страницах, ~ 68 Мбайт) - вроде, может второй partnum попасть в ДРУГОЙ чанк. Ну, а то, что он оказался 5 (если вы не ошибаетесь) - тоже, наверное, может быть. Был 5 чанк в другом пространстве, созданном раньше, потом пространство удалили, а чанк передали вашему пространству. Не пробовал, правда, такого добиться.
...
Рейтинг: 0 / 0
01.06.2005, 12:17
    #33094490
В.К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Пришлите, пожалуйста, результат onstat -d - и все прояснится...
...
Рейтинг: 0 / 0
01.06.2005, 12:49
    #33094617
Leonid Belov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
select pe_chunk from sysmaster:sysptnext where pe_partnum = ?
...
Рейтинг: 0 / 0
01.06.2005, 12:57
    #33094653
В.К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Leonid Belovselect pe_chunk from sysmaster:sysptnext where pe_partnum = ?

В какой версии будет работать такой запрос?

В версии 9.30.TC2 эта таблица имеет следующее определение:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
{ Partition Extent Descriptions }
    create table sysptnext		{ Internal Use Only		}
	(
	pe_partnum 	integer,	{ partnum for this partition	}
	pe_extnum  	smallint,	{ extent number			}
	pe_phys 	integer,	{ physical addr for this extent	}
	pe_size 	integer,	{ size of this extent		}
	pe_log  	integer		{ logical page for start	}
	);

pe_chunk там нет, но по pe_phys его таки да, можно получить...
...
Рейтинг: 0 / 0
01.06.2005, 12:59
    #33094665
В.К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Да, ну и записей там будет столько, сколько экстентов, а каждый экстент может оказаться в другом чанке...
...
Рейтинг: 0 / 0
01.06.2005, 13:13
    #33094719
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Да, похоже, никак. Действительно, таблица не обязана целиком лежать в одном чанке, у нее экстенты есть...

У меня база данных с накопленной статистикой.
Есть таблица и ее partnum. Еще есть список чанков с номерами и название dbspace, которому они принадлежат. А номера dbspace у меня нет.
Я хочу узнать, какая таблица в каком dbspace лежит.
И не могу, т.к. не могу узнать номер чанка.

Ошибка проектирования....
...
Рейтинг: 0 / 0
01.06.2005, 13:18
    #33094746
В.К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Тан
Я хочу узнать, какая таблица в каком dbspace лежит.


Ну, с этого же я начал свое объяснение:

В.К. ТанМожет быть это невозможно?

partnum chunk
5242938 10
5259898 5

Оба ваши partnum-а (идентификатор фрагмента ТАБЛИЦЫ) - в пятом DB-пространстве. Переведите в шестнадцатеричный вид и отбросьте последних пять цифр - будет вам номер пространства . Или так: partnum/1048576.

По номеру пространства легко получите его имя, см. select * from sysmaster:sysdbspaces. Зачем вам номер чанка? Для какого конкретного действия он вам сдался?
...
Рейтинг: 0 / 0
01.06.2005, 13:21
    #33094759
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
В.К.
...
Зачем вам номер чанка? Для какого конкретного действия он вам сдался?
Она не может узнать номер дибиспейса :) (забыла записать). Читай внимательней.
...
Рейтинг: 0 / 0
01.06.2005, 13:36
    #33094820
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Тан
Да, похоже, никак. Действительно, таблица не обязана целиком лежать в одном чанке, у нее экстенты есть...

У меня база данных с накопленной статистикой.
Есть таблица и ее partnum. Еще есть список чанков с номерами и название dbspace, которому они принадлежат. А номера dbspace у меня нет.
Я хочу узнать, какая таблица в каком dbspace лежит.
И не могу, т.к. не могу узнать номер чанка.

Ошибка проектирования....

А зачем заморачиваться с partnum.

oncheck -pt для конкретной таблицы
Размеры экстентов, количество
занятых( свободных ) страниц и тд. в разрезе дбспейсов

или вид сбоку

oncheck -pe для всего сервера.
смещения и размеры для экстентов
таблиц(индексов) в разрезе чанков.
...
Рейтинг: 0 / 0
01.06.2005, 13:43
    #33094850
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
У меня нет живого сервера. И онстата у меня нет.
У меня мертвая статистика в базе лежит. За прошлый год данные смотрю
...
Рейтинг: 0 / 0
01.06.2005, 14:07
    #33094937
Leonid Belov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
В.К. Leonid Belovselect pe_chunk from sysmaster:sysptnext where pe_partnum = ?

В какой версии будет работать такой запрос?



9.40 (FC4, TC?)
9.30 под рукой нет...

В.К. ТанМожет быть это невозможно?

partnum chunk
5242938 10
5259898 5

Оба ваши partnum-а (идентификатор фрагмента ТАБЛИЦЫ) - в пятом DB-пространстве. Переведите в шестнадцатеричный вид и отбросьте последних пять цифр - будет вам номер пространства. Или так: partnum/1048576. А вот номер чанка получают аналогичным образом по физическому адресу СТРАНИЦЫ (pg_addr, первые 4 байта на странице).


Это будет работать только с маленькими чанками (<= 2 Гбайт)
...
Рейтинг: 0 / 0
01.06.2005, 14:27
    #33095001
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
ТанУ меня нет живого сервера. И онстата у меня нет.
У меня мертвая статистика в базе лежит. За прошлый год данные смотрю

Может статистика в мертвой базе?
Если у вас нет команд onstat или oncheck, значит либо у вас база
данных не informix, либо что то не как с настройками сервера.
Команды нужно запускать на машине, на которой работает сервер.

Или вы хотите из файлов базы достать информацию,
без работающего сервера?
Тогда добро пожаловать в команду opendsa.
...
Рейтинг: 0 / 0
01.06.2005, 14:49
    #33095073
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
onstat- ТанУ меня нет живого сервера. И онстата у меня нет.
У меня мертвая статистика в базе лежит. За прошлый год данные смотрю

Может статистика в мертвой базе?
Если у вас нет команд onstat или oncheck, значит либо у вас база
данных не informix, либо что то не как с настройками сервера.
Команды нужно запускать на машине, на которой работает сервер.

Или вы хотите из файлов базы достать информацию,
без работающего сервера?
Тогда добро пожаловать в команду opendsa.

нет, база у меня живая. И даже сервер информикс. Хотя конечно, могла бы и в аксесс запихать, кто мне запретит? А вот статистика все-таки мертвая.

Я, понимаете, каждую ночь на сервере А данные из сисмастера собираю и перекладываю на сервер Б (в базу данных). И много лет уже. Так вот в той базе нет у меня информации о том, какой номер у дбспейса с неким названием. Есть только, какие в нем чанки, и их номера

Я могу запустить на сервере все команды на бкуву on*, но не на том, который был год назад.
...
Рейтинг: 0 / 0
01.06.2005, 16:18
    #33095389
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Тан onstat- ТанУ меня нет живого сервера. И онстата у меня нет.
У меня мертвая статистика в базе лежит. За прошлый год данные смотрю

Может статистика в мертвой базе?
Если у вас нет команд onstat или oncheck, значит либо у вас база
данных не informix, либо что то не как с настройками сервера.
Команды нужно запускать на машине, на которой работает сервер.

Или вы хотите из файлов базы достать информацию,
без работающего сервера?
Тогда добро пожаловать в команду opendsa.

нет, база у меня живая. И даже сервер информикс. Хотя конечно, могла бы и в аксесс запихать, кто мне запретит? А вот статистика все-таки мертвая.

Я, понимаете, каждую ночь на сервере А данные из сисмастера собираю и перекладываю на сервер Б (в базу данных). И много лет уже. Так вот в той базе нет у меня информации о том, какой номер у дбспейса с неким названием. Есть только, какие в нем чанки, и их номера

Я могу запустить на сервере все команды на бкуву on*, но не на том, который был год назад.

В документации по 7.3 я расковырял
что первые 12 bit( 1,5 байт)
есть номер дбспейса для этого табличного пространства.
Для 9.4 я такого пока не нашел,
но информация из системных
таблиц моего сервера говорит, что там тоже 1,5 байта.

Так как табличное пространство может быть размазано внутри
дбспейса по чанкам, чтобы дальше говорить о чанках нужна дополнительная информация.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
22.11.2006, 12:15
    #34146292
Сергей Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Тан
Я хочу узнать, какая таблица в каком dbspace лежит.


select * from sysmaster:systabnames не подойдет?
...
Рейтинг: 0 / 0
22.11.2006, 12:27
    #34146359
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Ой какого трупа отрыли.

Рассказываю как было дело.

Тан имеет много серверов информикс(И). Тан имеет одну бд (С) куда складывает инф-ю из систмастеров(И) (определенные таблицы) один раз в сутки по ночам (копирует). Информация в С хранится вечно, и позволяет анализировать как изменяются размеры баз, пространств, табличек, фулсканы, кеширование, etc (capacity/perfomance management).
И вот есть у нее есть таблица в С, она знает ее партнум, сам И по которому собрана информация и где была таблица давно убит. Из партнума нашла она дибиспейс, а как понять какой это чанк, а никак, эту инфо-ю (чанк-дибиспейс) она не собирала.
Исправила она тот баг, год назад.
...
Рейтинг: 0 / 0
22.11.2006, 13:41
    #34146657
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Журавлев ДенисОй какого трупа отрыли.

Рассказываю как было дело.

Тан имеет много серверов информикс(И). Тан имеет одну бд (С) куда складывает инф-ю из систмастеров(И) (определенные таблицы) один раз в сутки по ночам (копирует). Информация в С хранится вечно, и позволяет анализировать как изменяются размеры баз, пространств, табличек, фулсканы, кеширование, etc (capacity/perfomance management).
И вот есть у нее есть таблица в С, она знает ее партнум, сам И по которому собрана информация и где была таблица давно убит. Из партнума нашла она дибиспейс, а как понять какой это чанк, а никак, эту инфо-ю (чанк-дибиспейс) она не собирала.
Исправила она тот баг, год назад.
и все-таки немного не так дело было.

Я нашла из партнума dbspace (номер его). Хочу теперь название dbspace узнать.
Но нет у меня таблицы с полями (номер dbspace, название dbspace)
Вместо этого есть у меня таблица с полями (номер chunk, файл chunk, название dbspace)

Ошибка проектирования это была, мне нужна была таблица (номер chunk, файл chunk, номер dbspace, название dbspace).
Нельзя достать из partnum номер чанка, потому что таблица может лежать во всех чанках сразу, а партнум у нее один. Информацию о чанке можно из экстентов найти, если она действительно нужна. Мне не нужна была в том случае.

Исправила ошибку, больше не страдаю
...
Рейтинг: 0 / 0
23.11.2006, 16:58
    #34151009
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
Сергей Сергеевич Тан
Я хочу узнать, какая таблица в каком dbspace лежит.


select * from sysmaster:systabnames не подойдет?Еще смешное подумалось: человек, узнавший три дня назад, что systabnames лежит в sysmaster, помогает Тан, имеющей девятилетний опыт администрирования и программирования в информикс. Лол в общем.
...
Рейтинг: 0 / 0
23.11.2006, 17:29
    #34151164
Сергей Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как достать из partnum номер чанка?
0:-) Вот такой я, помощник расту! ;-)
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как достать из partnum номер чанка? / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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