Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 11 12 13 14 15 16 17 18 [19] 20   вперед  Ctrl
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ОКТОГЕН
Gluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов,
которые зависят от одного объекта, с которым мы работаем?
И что будет при обнаружении инвалида с остальными объектами в
дереве(останутся валидными или нет)?


Дык, конечно каскадно инвалидируется. А как же еще?
Правда тут есть два нюанса (из тех что навскидку помню):

1. Динамический SQL разрывает цепочку зависимостей (из-за чего, в частности не рекомендуется его использовать), и дает возможность поймать ошибку в RunTime
2. Если кто-то использует пакет, он зависит от его интерфейса, а не от реализации (и это очень правильно)
6 июл 10, 15:57    [9058208]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
SergSuper
iscrafm
SergSuper,

т.е. Вы считаете, что для разработчика вполне нормально писать такие запросы? уточните плз.
не вижу смысла уточнять, это к теме разговора никак не относится

как знаете. Разговор был как раз об этом.
6 июл 10, 16:02    [9058279]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
Gluk (Kazan), ну дык, первое как раз логично. Если что - программист сам дурак.
А второй случай имеет отдалённую аналогию в pg. Названия функций, тип, параметры должны
оставаться неизменными, а вот потроха... Короче,валидация - нужный и полезный механизмус.
6 июл 10, 16:04    [9058295]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
web_fox
Member

Откуда: Киев
Сообщений: 444
Gluk (Kazan)
ОКТОГЕН
Gluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов,
которые зависят от одного объекта, с которым мы работаем?
И что будет при обнаружении инвалида с остальными объектами в
дереве(останутся валидными или нет)?


Дык, конечно каскадно инвалидируется. А как же еще?
Правда тут есть два нюанса (из тех что навскидку помню):

1. Динамический SQL разрывает цепочку зависимостей (из-за чего, в частности не рекомендуется его использовать), и дает возможность поймать ошибку в RunTime
2. Если кто-то использует пакет, он зависит от его интерфейса, а не от реализации (и это очень правильно)


Когда-то в молодости (был тогда Oracle 9), на меня сильно накричали архитектор и руководитель поддержки, за то, что они обнаружили мой PL/SQL-пакет, а там, о боже, все обращение к таблицам по дб-линкам были в статическом sql. "Обращения к таблицам по дб-линкам только к динамическом sql, иначе может наступить .Опа!!!" - говорили сердитые лица. Вот так жили люди.
6 июл 10, 17:29    [9059271]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
web_fox
Gluk (Kazan)
ОКТОГЕН
Gluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов,
которые зависят от одного объекта, с которым мы работаем?
И что будет при обнаружении инвалида с остальными объектами в
дереве(останутся валидными или нет)?


Дык, конечно каскадно инвалидируется. А как же еще?
Правда тут есть два нюанса (из тех что навскидку помню):

1. Динамический SQL разрывает цепочку зависимостей (из-за чего, в частности не рекомендуется его использовать), и дает возможность поймать ошибку в RunTime
2. Если кто-то использует пакет, он зависит от его интерфейса, а не от реализации (и это очень правильно)


Когда-то в молодости (был тогда Oracle 9), на меня сильно накричали архитектор и руководитель поддержки, за то, что они обнаружили мой PL/SQL-пакет, а там, о боже, все обращение к таблицам по дб-линкам были в статическом sql. "Обращения к таблицам по дб-линкам только к динамическом sql, иначе может наступить .Опа!!!" - говорили сердитые лица. Вот так жили люди.


Синоним FORCE VIEW и никакой динамики
6 июл 10, 17:32    [9059294]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
Dimitry Sibiryakov
Но это всё же приятнее, чем обнаружить что она перестала работать, в
момент вызова.
Не уверен, хотя это уже наверное дело вкуса. Просто я рассматриваю СУБД, как инструмент разработчика, а не как ПО для конечного пользователя и посему от СУБД ожидаю максимальной дружелюбности по отношению к разработчику (о пользователе должен заботиться разработчик прикладного ПО). С этой точки зрения сокрытие информации о потенциальных проблемах есть крайне недружелюбный шаг со стороны СУБД.

В общем в случае, если какой-то из зависимых объектов компилироваться перестал имеем две возможности:
а. сразу продиагностировать проблему
б. разрешить использованее ранее скомпилированного варианта
Наверное, оптимальным было бы делать и то и то сразу, но увы...
Oracle делает a и не делает b
Firebird делает b и не делает a (если я правильно понял)
MSSQL не делает ни того ни другого

За отсутствием идеала из трех имеющихся вариантов я выбираю оракловый (причины объяснил выше) :)
6 июл 10, 18:45    [9059878]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54813

Bogdanov Andrey
а. сразу продиагностировать проблему
б. разрешить использованее ранее скомпилированного варианта
Наверное, оптимальным было бы делать и то и то сразу, но увы...
Oracle делает a и не делает b

А вот я не уверен, что он делает а. Лог выполнения тестового скрипта
Глюк не привёл и из его слов я понял, что для диагностики требуются
дополнительные телодвижения в виде поиска и уничтожения инвалидов,
который автоматом не делается.

Posted via ActualForum NNTP Server 1.4

6 июл 10, 19:37    [9060132]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Bogdanov Andrey
MSSQL не делает ни того ни другого


Гм...

MS SQL 2008:

USE tempdb
GO
CREATE TABLE dbo.T (x int primary key)
go
CREATE VIEW dbo.V AS
SELECT x, x+1 as y FROM dbo.T
go
CREATE PROCEDURE dbo.P1 AS
SELECT y FROM dbo.V
go
CREATE PROCEDURE dbo.P2 AS
SELECT x FROM dbo.V
go
SELECT * FROM sys.objects o OUTER APPLY
sys.dm_sql_referenced_entities(SCHEMA_NAME(o.schema_id)+'.'+o.name,'OBJECT'
)
WHERE o.type NOT IN ('S','SQ','IT')
go
ALTER VIEW V AS
SELECT x, x+1 as z FROM T
go
SELECT * FROM sys.objects o OUTER APPLY
sys.dm_sql_referenced_entities(SCHEMA_NAME(o.schema_id)+'.'+o.name,'OBJECT'
)
WHERE o.type NOT IN ('S','SQ','IT')
go
DROP PROCEDURE P1,P2
DROP VIEW V
DROP TABLE T

(3346 row(s) affected)
Msg 207, Level 16, State 1, Procedure P1, Line 2
Недопустимое имя столбца "y".
Msg 2020, Level 16, State 1, Line 1
В число зависимостей, переданных сущности "dbo.P1", не входят ссылки на столбцы. Возможно, сущность ссылается на несуществующий объект либо существует ошибка в одной или нескольких инструкциях в сущности. Перед повторным выполнением запроса убедитесь, что отсутствуют ошибки в сущности и существуют все объекты, упоминаемые в сущности.
6 июл 10, 20:23    [9060303]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Dimitry Sibiryakov

А вот я не уверен, что он делает а. Лог выполнения тестового скрипта
Глюк не привёл и из его слов я понял, что для диагностики требуются
дополнительные телодвижения в виде поиска и уничтожения инвалидов,
который автоматом не делается.


вот делать нефиг еще азбучные истины логом иллюстрировать
как представляешь себе автоматическое лечение инвалидов? Там ить код в нашем случае менять придется :) ИИ???
6 июл 10, 23:04    [9060847]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
pkarklin
Гм...

MS SQL 2008:
Я не работал с MSSQL уже лет десять и посему мои сведения могут быть устаревшими, неполными и ошибочными. Мне казалось, что сложности были. рад, если их нет. Прошу прощения, если задел.
7 июл 10, 09:29    [9061786]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Bogdanov Andrey
Прошу прощения, если задел.


Да ни коим образом. ;)
7 июл 10, 09:33    [9061808]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
Dimitry Sibiryakov
для диагностики требуются
дополнительные телодвижения в виде поиска и уничтожения инвалидов,
который автоматом не делается.
Инвалиды автоматом "помечаются", а уж решение о том что и как с ними делать принимает, естественно, человек.
7 июл 10, 09:45    [9061865]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
pkarklin
Bogdanov Andrey
MSSQL не делает ни того ни другого


Гм...

MS SQL 2008:

USE tempdb
...
(3346 row(s) affected)
Msg 207, Level 16, State 1, Procedure P1, Line 2
Недопустимое имя столбца "y".
Msg 2020, Level 16, State 1, Line 1
В число зависимостей, переданных сущности "dbo.P1", не входят ссылки на столбцы. Возможно, сущность ссылается на несуществующий объект либо существует ошибка в одной или нескольких инструкциях в сущности. Перед повторным выполнением запроса убедитесь, что отсутствуют ошибки в сущности и существуют все объекты, упоминаемые в сущности.
но если это сообщение пропустить потом ведь уже не узнать валидная P1 или нет
7 июл 10, 09:54    [9061918]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SergSuper,

Безусловно, пропустить можно все. А можно на это дело SCOM натравить с соответсвующим монитором, чтоб он письма и SMSки слал.
7 июл 10, 10:27    [9062253]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
SergSuper,

Безусловно, пропустить можно все. А можно на это дело SCOM натравить с соответсвующим монитором, чтоб он письма и SMSки слал.


Инвалиды в базе пропустить сложнее чем SMS-ку
7 июл 10, 10:41    [9062402]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Gluk (Kazan)
Инвалиды в базе пропустить сложнее чем SMS-ку


По-моему, мы уходим от реальных обсуждений в сторону перфекционизма.
7 июл 10, 10:55    [9062529]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
Gluk (Kazan)
Инвалиды в базе пропустить сложнее чем SMS-ку


По-моему, мы уходим от реальных обсуждений в сторону перфекционизма.


С чьей стороны? Ладно, забей :)
7 июл 10, 11:01    [9062576]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
axlm
Member

Откуда:
Сообщений: 39
автор
У меня это бывает при совершенно обычных операциях - гоняешь свой прикладной софт в отладчике - хопа, а в какой-то момент сервер PosgreSQL умер.

))))))))))))
13 июл 10, 00:59    [9092117]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
axlm
Member

Откуда:
Сообщений: 39
офтопик конечно, но афтор как говориться и жнец и на дуде игрец http://www.vb-net.ru/criptopro/index.htm, это просто чудо какое-то, надо спать идти, и немогу, перец жжет по полной, ну зачем вы лезите в крипто, какие нах "маски ключи", какие сведения о платежах, почитайте гост, где там умножение простых чисел, вы понимаете что ваш сайт посещают дети которые не имеют понятия о ИБ а вы им такой фуфел гоните ... очнь смешно и очнь грустно ... :(
13 июл 10, 02:51    [9092216]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
dbms_photoshop
Member

Откуда:
Сообщений: 5151
Dimitry Sibiryakov
А теперь вопрос на засыпку: какой констрейнт надо
включить, чтобы Оракул не дал сохранить в базу инвалидную
процедуру или другой объект?

Формулировка вопроса говорит о полном непонимании архитектуры и базовых понятий. Об этом уже сказали.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/data_int.htm#i13162
Oracle uses integrity constraints to prevent invalid data entry into the base tables of the database.
Чувствуешь разницу между "invalid data entry into the base tables" и "invalid objects in the user schema"?

ЛП
2 SergSuper
iscrafm
для этого блокнот есть

да можно и не в блокноте, а карандишиком на отдельных листочках
главное не забывать куда положил

Можно и на листочке.
Это всё лучше, чем принципиально неработающие объекты держать в рабочей системе.

Для меня лично такое поведение - это что-то из разряда "нажал на кнопку Build Solution, мудрая Visual Studio выдала 10 ошибок и 100 ворнингов, и ... сбилдила проект".

ЛП
Все равно что при создании таблицы неправильно указать тип данных у одного из столбцов, разумеется словить ошибку, вывести сообщение с описанием ошибки - но таблицу всё равно создать. Занафига?

Подумай о том, что происходит когда создается:
1) процедура
2) таблица
3) бинарники из исходников
Подсказка: создание таблицы в оракле сопровождается выделением места в табличном пространстве, создание бинарников из исходников - созданием выполнимого кода из кода программы на языке программирования. А создание процедуры - это создание именованого блока в базе. Теперь помедитируй над тем: чем отличается создание и компиляция. Это касательно оракла. При разработке приложений еще можешь подумать чем отличается компиляция и билд.

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

Dimitry Sibiryakov
То, что слежение за целостностью данных с помощью констренов можно
отключить, ты считаешь нормальным. И то, что слежение за целостностью
метаданных невозможно включить ты тоже считаешь нормальным.
Видимо, такие двойные стандарты считаются нормальными у ораклоидов...
Почитай про ddl triggers + dbms_scheduler.

Теперь найди хоть одного ораклиста, который сказал бы что удобно работать когда вместо того, чтобы объекты стали инвалидными - они просто удаляются.
Уже дошло как это можно реализовать?
С обратной стороны я надеюсь тебе не надо приводить примеры, когда разработчики Postgre хотели бы иметь такой же подход к инвалидации как в оракле.
А вот этого если в ядре базы не нет - то тут уж ничего не поделаешь.

Вот для затравки сырой скрипт, который нужно дорабатывать напильником (в плане drop type ... force, обработки исключений и прочего):
BEGIN
    FOR cur_rec IN (SELECT object_name, object_type
                      FROM user_objects
                     WHERE object_type IN ('TABLE',
                                           'VIEW',
                                           'PACKAGE',
                                           'PROCEDURE',
                                           'FUNCTION') AND
                           ststus = 'INVALID')
    LOOP
        BEGIN
            IF cur_rec.object_type = 'TABLE' THEN
                EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' ||
                                  cur_rec.object_name ||
                                  '" CASCADE CONSTRAINTS';
            ELSE
                EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' ||
                                  cur_rec.object_name || '"';
            END IF;
    END LOOP;
END;
/
13 июл 10, 07:28    [9092302]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
dbms_photoshop
Member

Откуда:
Сообщений: 5151
Dimitry Sibiryakov

Gluk (Kazan)

Фанатизм - это прежде всего неумение слушать собеседника.

Именно. Уже которую страницу я говорю, что МНЕ мешает сохранение
инвалидных объектов, поскольку если какой-нибудь неадекват создаст
инвалидный триггер на МОЮ таблицу, то работа МОЕГО приложения накроется
медным тазом. Но всё, что я могу сделать для предотвращения такой
ситуации, это написать в документации "милый DBA, убей каждого, кто так
поступит" и надеяться что а) DBA есть и б) читает мою документацию,
поскольку никаким другим способом т.н. промышленная СУБД имярек мне
предотвратить такой саботаж не даст.

Ты разрабатываешь бизнес-логику на продакшен схеме? Нет? Тогда в чем проблема, если приложение перестанет работать с инвалидным триггером?
Кроме того, замечу, что если триггера просто не будет, а приложение рассчитано на то, что он есть, то от этого оно не будет работать правильнее чем в случае с инвалидностью.

Древнеиндийская притча
«Од­нажды три слепых пожелали узнать, что есть слон. К ним подвели слона и предло­жили: одному пощупать хобот, другому — ногу, а третьему — хвост. «Ну как, теперь вы знаете, что такое слон?» — спросили их. «О, да, знаем. Это что-то мягкое и гиб­кое, как Змея», — ответил первый слепой. «Это что-то большое, как колонна», — отозвался второй, ощупывая ногу слона. «Это что-то тонкое и длинное, как верев­ка», — сказал третий».

Так и ты, имея опыт работы с некоторой СУБД ограничиваешь себя ее идеологией и рассматриваешь все остальное через ее призму. Попробуй взглянуть на мир шире.

И напоследок, представь такую гипотетическую ситуацию.
Допустим у тебя есть кнопочка в среде разработки, которая запускает скрипт, который я указал выше и он удаляет всех инвалидов. После каждого изменения ты нажимаешь ее а потом создаешь скриптом объекты заново.
С другой стороны ты можешь пользоваться другой кнопочкой, которая просто перекомпилирует всех инвалидов.
По твоему первое удобнее?
13 июл 10, 12:04    [9093941]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
dbms_photoshop
Member

Откуда:
Сообщений: 5151
Dimitry Sibiryakov

Gluk (Kazan)

Если инвалиды допускаются, в принципе, почему не допускать их при
создании объекта?

Отчего же не допускать, допускать. Но COMMIT они пережить не должны.
Транзакция обязана переводить БД из одного консистентного
состояния в другое. (Я тут не говорю про Оракула, который в принципе
неспособен выполнить несколько DDL в одной транзакции.)

Если в бизнес-операциях используется DDL - значит что-то не так в твоей консерватории.
Если речь про разработку - для чего транзакции при изменении метаданных?
Внимательно слушаю пример.
ЛП
У меня вон в вижуал студии хоть весь из себя кривой код может быть. Однако ж - не скомпилируется. Кривая процедура - билд не пройдёт никогда. Не получится так, что в длл-ке лежит какая-то функция, которая имеет статус Invalid, и которую нельзя вызывать.

Для тебя будет откровением, но процедура с ошибками и в оракле не скомпилируется. Но тем не менее может быть сохранена как и файл с исходниками в студии.
Тебе удобно было бы, если б в студии нельзя было нажать кнопочку SAVE ALL до тех пор пока ты не сможешь откомпилировать весь проект?
Dimitry Sibiryakov
И того, кто предложит, чтобы инвалид пережил COMMIT я лично буду грызть
до последнего байта.

Спасибо, что в нике указал имя, я постараюсь в реальной жизни никогда не иметь с тобой дел.
13 июл 10, 12:25    [9094124]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
dbms_photoshop

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

Ты смеёшься, а уродский GPSS редактор именно так и поступал. Какое такое сохранение?
Код содержит ошибки - правь, потом на диск сохранишь.
13 июл 10, 12:27    [9094151]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
dbms_photoshop
Member

Откуда:
Сообщений: 5151
ЛП
вон гляди-ка ты, у SergSuper'а в боевой базе инвалидные объекты, и оно даже так и задумывалось.

Если ты в поставке сначала дропнешь объекты, а потом пересоздаешь вместо вызова перекомпиляции - читающий твой скрипт подумает, что это писал какой-то идиот. Да, требование, что инвалидов нет - будет соблюдено.
13 июл 10, 12:32    [9094202]     Ответить | Цитировать Сообщить модератору
 Re: Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL  [new]
dbms_photoshop
Member

Откуда:
Сообщений: 5151
Dimitry Sibiryakov

Gluk (Kazan)
О ... ты ничего не слышал о v$-представлениях ???

Список v$-представлений, на которых базируется ALL_TABLES - в студию!!!

Я не перестаю удивляться. Это ж насколько надо иметь завышенное самомнение, чтоб так беспардонно выставлять свою невежественность.
+ all_tables
CREATE OR REPLACE VIEW ALL_TABLES
(owner, table_name, tablespace_name, cluster_name, iot_name, status, pct_free, pct_used,
 ini_trans, max_trans, initial_extent, next_extent, min_extents, max_extents, pct_increase,
 freelists, freelist_groups, logging, backed_up, num_rows, blocks, empty_blocks, avg_space,
 chain_cnt, avg_row_len, avg_space_freelist_blocks, num_freelist_blocks, degree, instances,
 cache, table_lock, sample_size, last_analyzed, partitioned, iot_type, temporary, secondary,
 nested, buffer_pool, row_movement, global_stats, user_stats, duration, skip_corrupt, monitoring,
 cluster_owner, dependencies, compression, dropped)
AS
SELECT u.name,
	   o.name,
	   decode(bitand(t.property, 2151678048), 0, ts.name, NULL),
	   decode(bitand(t.property, 1024), 0, NULL, co.name),
	   decode((bitand(t.property, 512) + bitand(t.flags, 536870912)),
			  0,
			  NULL,
			  co.name),
	   decode(bitand(t.trigflag, 1073741824),
			  1073741824,
			  'UNUSABLE',
			  'VALID'),
	   decode(bitand(t.property, 32 + 64),
			  0,
			  MOD(t.pctfree$, 100),
			  64,
			  0,
			  NULL),
	   decode(bitand(ts.flags, 32),
			  32,
			  to_number(NULL),
			  decode(bitand(t.property, 32 + 64), 0, t.pctused$, 64, 0, NULL)),
	   decode(bitand(t.property, 32), 0, t.initrans, NULL),
	   decode(bitand(t.property, 32), 0, t.maxtrans, NULL),
	   s.iniexts * ts.blocksize,
	   decode(bitand(ts.flags, 3),
			  1,
			  to_number(NULL),
			  s.extsize * ts.blocksize),
	   s.minexts,
	   s.maxexts,
	   decode(bitand(ts.flags, 3), 1, to_number(NULL), s.extpct),
	   decode(bitand(ts.flags, 32),
			  32,
			  to_number(NULL),
			  decode(bitand(o.flags, 2),
					 2,
					 1,
					 decode(s.lists, 0, 1, s.lists))),
	   decode(bitand(ts.flags, 32),
			  32,
			  to_number(NULL),
			  decode(bitand(o.flags, 2),
					 2,
					 1,
					 decode(s.groups, 0, 1, s.groups))),
	   decode(bitand(t.property, 32 + 64),
			  0,
			  decode(bitand(t.flags, 32), 0, 'YES', 'NO'),
			  NULL),
	   decode(bitand(t.flags, 1), 0, 'Y', 1, 'N', '?'),
	   t.rowcnt,
	   decode(bitand(t.property, 64), 0, t.blkcnt, NULL),
	   decode(bitand(t.property, 64), 0, t.empcnt, NULL),
	   decode(bitand(t.property, 64), 0, t.avgspc, NULL),
	   t.chncnt,
	   t.avgrln,
	   t.avgspc_flb,
	   decode(bitand(t.property, 64), 0, t.flbcnt, NULL),
	   lpad(decode(t.degree, 32767, 'DEFAULT', nvl(t.degree, 1)), 10),
	   lpad(decode(t.instances, 32767, 'DEFAULT', nvl(t.instances, 1)), 10),
	   lpad(decode(bitand(t.flags, 8), 8, 'Y', 'N'), 5),
	   decode(bitand(t.flags, 6), 0, 'ENABLED', 'DISABLED'),
	   t.samplesize,
	   t.analyzetime,
	   decode(bitand(t.property, 32), 32, 'YES', 'NO'),
	   decode(bitand(t.property, 64),
			  64,
			  'IOT',
			  decode(bitand(t.property, 512),
					 512,
					 'IOT_OVERFLOW',
					 decode(bitand(t.flags, 536870912),
							536870912,
							'IOT_MAPPING',
							NULL))),
	   decode(bitand(o.flags, 2), 0, 'N', 2, 'Y', 'N'),
	   decode(bitand(o.flags, 16), 0, 'N', 16, 'Y', 'N'),
	   decode(bitand(t.property, 8192),
			  8192,
			  'YES',
			  decode(bitand(t.property, 1), 0, 'NO', 'YES')),
	   decode(bitand(o.flags, 2),
			  2,
			  'DEFAULT',
			  decode(s.cachehint,
					 0,
					 'DEFAULT',
					 1,
					 'KEEP',
					 2,
					 'RECYCLE',
					 NULL)),
	   decode(bitand(t.flags, 131072), 131072, 'ENABLED', 'DISABLED'),
	   decode(bitand(t.flags, 512), 0, 'NO', 'YES'),
	   decode(bitand(t.flags, 256), 0, 'NO', 'YES'),
	   decode(bitand(o.flags, 2),
			  0,
			  NULL,
			  decode(bitand(t.property, 8388608),
					 8388608,
					 'SYS$SESSION',
					 'SYS$TRANSACTION')),
	   decode(bitand(t.flags, 1024), 1024, 'ENABLED', 'DISABLED'),
	   decode(bitand(o.flags, 2),
			  2,
			  'NO',
			  decode(bitand(t.property, 2147483648),
					 2147483648,
					 'NO',
					 decode(ksppcv.ksppstvl, 'TRUE', 'YES', 'NO'))),
	   decode(bitand(t.property, 1024), 0, NULL, cu.name),
	   decode(bitand(t.flags, 8388608), 8388608, 'ENABLED', 'DISABLED'),
	   decode(bitand(t.property, 32),
			  32,
			  NULL,
			  decode(bitand(s.spare1, 2048), 2048, 'ENABLED', 'DISABLED')),
	   decode(bitand(o.flags, 128), 128, 'YES', 'NO')
  FROM sys.user$ u,
	   sys.ts$   ts,
	   sys.seg$  s,
	   sys.obj$  co,
	   sys.tab$  t,
	   sys.obj$  o,
	   sys.obj$  cx,
	   sys.user$ cu,
	   x$ksppcv  ksppcv,
	   x$ksppi   ksppi
 WHERE o.owner# = u.user# AND
	   o.obj# = t.obj# AND
	   bitand(t.property, 1) = 0 AND
	   bitand(o.flags, 128) = 0 AND
	   t.bobj# = co.obj#(+) AND
	   t.ts# = ts.ts# AND
	   t.file# = s.file#(+) AND
	   t.block# = s.block#(+) AND
	   t.ts# = s.ts#(+) AND
	   (o.owner# = userenv('SCHEMAID') OR
	   o.obj# IN
	   (SELECT oa.obj#
		   FROM sys.objauth$ oa
		  WHERE grantee# IN (SELECT kzsrorol FROM x$kzsro)) OR /* user has system privileges */
	   EXISTS
		(SELECT NULL
		   FROM v$enabledprivs
		  WHERE priv_number IN (-45 /* LOCK ANY TABLE */,
								-47 /* SELECT ANY TABLE */,
								-48 /* INSERT ANY TABLE */,
								-49 /* UPDATE ANY TABLE */,
								-50 /* DELETE ANY TABLE */))) AND
	   t.dataobj# = cx.obj#(+) AND
	   cx.owner# = cu.user#(+) AND
	   ksppi.indx = ksppcv.indx AND
	   ksppi.ksppinm = '_dml_monitoring_enabled';

Вот текст запроса для ALL_TABLES. Что теперь?
13 июл 10, 12:53    [9094420]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 11 12 13 14 15 16 17 18 [19] 20   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить