Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Имена таблиц, в которых указана блокировка all pages / 6 сообщений из 6, страница 1 из 1
05.10.2007, 15:18
    #34850242
Eugeny_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена таблиц, в которых указана блокировка all pages
Подскажите, как в ASE 12.5.3 выбрать имена таблиц в базе, у которых установлена блокировка allpages?
...
Рейтинг: 0 / 0
05.10.2007, 15:44
    #34850360
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена таблиц, в которых указана блокировка all pages
Eugeny_M пишет:

> Подскажите, как в ASE 12.5.3 выбрать имена таблиц в базе, у которых
> установлена блокировка allpages?

sysobjects
Qualifier (all databases)

sysobjects contains one row for each table, view, stored procedure, extended
stored procedure, log, rule, default, trigger, check constraint, referential
constraint, and (in tempdb only) temporary object.

sysstat2 int Additional internal status information (see Table 57-1)

NameDatatypeDescription....sysstat2intAdditional internal status information (see Table 57-1)....

Table 57-1: sysstat2 control bits in the sysobjects table

DecimalHexStatus....81920x2000Table uses allpages locking scheme163840x4000Table uses datapages locking scheme327680x8000Table uses datarows locking scheme....

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.10.2007, 15:59
    #34850420
Eugeny_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена таблиц, в которых указана блокировка all pages
MasterZiv
Спасибо!
...
Рейтинг: 0 / 0
05.10.2007, 16:00
    #34850423
москит
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена таблиц, в которых указана блокировка all pages
Выполнив это
Код: plaintext
exec sp_helptext 'sp_help'

Можно увидеть такой код
Код: 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.
-------------        
select @sysstat = sysstat, @sysstat2 = sysstat2
	from sysobjects
		where id = object_id(@objname)
-------------        
if @sysstat & 15 in (1, 3)
begin
	/*
	** the bits 0x2000, 0x4000 & 0x8000 represents any 
	** explicit lock scheme bits that can be set, so
	** get them out ( 0x2000 + 0x4000 + 0x8000 = 57344)
	*/
	select @sysstat2 = (sysstat2 & 57344)
		from sysobjects
			where id = object_id(@objname)
	/*
	** The value 0, refers that no lock scheme is 
	** specified (old style tables) so they support only
	** allpages locking
	*/
	if (@sysstat2 in (0, 8192, 16384, 32768))
	begin
		if (@sysstat2  = 8192 or @sysstat2 = 0)
		begin
			/* 17576, "Lock scheme is Allpages" */
-------------        

Этой информации достаточно для написания вот такого запроса
Код: plaintext
1.
2.
3.
4.
select Name
from sysobjects
where sysstat &  15  in ( 1 ,  3 )
and (sysstat2 &  57344 ) in ( 0 ,  8192 )
and Type = 'U'
...
Рейтинг: 0 / 0
05.10.2007, 16:16
    #34850490
Eugeny_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена таблиц, в которых указана блокировка all pages
москит
Большое спасибо!
...
Рейтинг: 0 / 0
06.10.2007, 01:04
    #34851509
Zhora
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена таблиц, в которых указана блокировка all pages
select name
from sysobjects
where lockscheme(id)="allpages" --"datapages" --"datarows"
and type="U"
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Имена таблиц, в которых указана блокировка all pages / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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