powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
25 сообщений из 494, страница 19 из 20
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36725971
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНGluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов,
которые зависят от одного объекта, с которым мы работаем?
И что будет при обнаружении инвалида с остальными объектами в
дереве(останутся валидными или нет)?

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

1. Динамический SQL разрывает цепочку зависимостей (из-за чего, в частности не рекомендуется его использовать), и дает возможность поймать ошибку в RunTime
2. Если кто-то использует пакет, он зависит от его интерфейса, а не от реализации (и это очень правильно)
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36725982
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperiscrafmSergSuper,

т.е. Вы считаете, что для разработчика вполне нормально писать такие запросы? уточните плз.не вижу смысла уточнять, это к теме разговора никак не относится
как знаете. Разговор был как раз об этом.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36725986
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan), ну дык, первое как раз логично. Если что - программист сам дурак.
А второй случай имеет отдалённую аналогию в pg. Названия функций, тип, параметры должны
оставаться неизменными, а вот потроха... Короче,валидация - нужный и полезный механизмус.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36726217
web_fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)ОКТОГЕНGluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов,
которые зависят от одного объекта, с которым мы работаем?
И что будет при обнаружении инвалида с остальными объектами в
дереве(останутся валидными или нет)?

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

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

Когда-то в молодости (был тогда Oracle 9), на меня сильно накричали архитектор и руководитель поддержки, за то, что они обнаружили мой PL/SQL-пакет, а там, о боже, все обращение к таблицам по дб-линкам были в статическом sql. "Обращения к таблицам по дб-линкам только к динамическом sql, иначе может наступить .Опа!!!" - говорили сердитые лица. Вот так жили люди.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36726226
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
web_foxGluk (Kazan)ОКТОГЕНGluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов,
которые зависят от одного объекта, с которым мы работаем?
И что будет при обнаружении инвалида с остальными объектами в
дереве(останутся валидными или нет)?

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

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

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

Синоним FORCE VIEW и никакой динамики
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36726443
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНо это всё же приятнее, чем обнаружить что она перестала работать, в
момент вызова. Не уверен, хотя это уже наверное дело вкуса. Просто я рассматриваю СУБД, как инструмент разработчика, а не как ПО для конечного пользователя и посему от СУБД ожидаю максимальной дружелюбности по отношению к разработчику (о пользователе должен заботиться разработчик прикладного ПО). С этой точки зрения сокрытие информации о потенциальных проблемах есть крайне недружелюбный шаг со стороны СУБД.

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

За отсутствием идеала из трех имеющихся вариантов я выбираю оракловый (причины объяснил выше) :)
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36726511
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andreyа. сразу продиагностировать проблему
б. разрешить использованее ранее скомпилированного варианта
Наверное, оптимальным было бы делать и то и то сразу, но увы...
Oracle делает a и не делает b

А вот я не уверен, что он делает а. Лог выполнения тестового скрипта
Глюк не привёл и из его слов я понял, что для диагностики требуются
дополнительные телодвижения в виде поиска и уничтожения инвалидов,
который автоматом не делается.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36726570
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyMSSQL не делает ни того ни другого

Гм...

MS SQL 2008:

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
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", не входят ссылки на столбцы. Возможно, сущность ссылается на несуществующий объект либо существует ошибка в одной или нескольких инструкциях в сущности. Перед повторным выполнением запроса убедитесь, что отсутствуют ошибки в сущности и существуют все объекты, упоминаемые в сущности.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36726763
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
А вот я не уверен, что он делает а. Лог выполнения тестового скрипта
Глюк не привёл и из его слов я понял, что для диагностики требуются
дополнительные телодвижения в виде поиска и уничтожения инвалидов,
который автоматом не делается.


вот делать нефиг еще азбучные истины логом иллюстрировать
как представляешь себе автоматическое лечение инвалидов? Там ить код в нашем случае менять придется :) ИИ???
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727040
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinГм...

MS SQL 2008:Я не работал с MSSQL уже лет десять и посему мои сведения могут быть устаревшими, неполными и ошибочными. Мне казалось, что сложности были. рад, если их нет. Прошу прощения, если задел.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727049
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyПрошу прощения, если задел.

Да ни коим образом. ;)
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727078
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovдля диагностики требуются
дополнительные телодвижения в виде поиска и уничтожения инвалидов,
который автоматом не делается.
Инвалиды автоматом "помечаются", а уж решение о том что и как с ними делать принимает, естественно, человек.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727099
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinBogdanov AndreyMSSQL не делает ни того ни другого

Гм...

MS SQL 2008:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
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 или нет
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727200
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper,

Безусловно, пропустить можно все. А можно на это дело SCOM натравить с соответсвующим монитором, чтоб он письма и SMSки слал.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727244
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinSergSuper,

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

Инвалиды в базе пропустить сложнее чем SMS-ку
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727292
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Инвалиды в базе пропустить сложнее чем SMS-ку

По-моему, мы уходим от реальных обсуждений в сторону перфекционизма.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36727312
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinGluk (Kazan)Инвалиды в базе пропустить сложнее чем SMS-ку

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

С чьей стороны? Ладно, забей :)
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36737144
axlm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ меня это бывает при совершенно обычных операциях - гоняешь свой прикладной софт в отладчике - хопа, а в какой-то момент сервер PosgreSQL умер.
))))))))))))
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36737203
axlm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
офтопик конечно, но афтор как говориться и жнец и на дуде игрец http://www.vb-net.ru/criptopro/index.htm, это просто чудо какое-то, надо спать идти, и немогу, перец жжет по полной, ну зачем вы лезите в крипто, какие нах "маски ключи", какие сведения о платежах, почитайте гост, где там умножение простых чисел, вы понимаете что ваш сайт посещают дети которые не имеют понятия о ИБ а вы им такой фуфел гоните ... очнь смешно и очнь грустно ... :(
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36737250
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, обработки исключений и прочего):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
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;
/
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36737795
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Gluk (Kazan)
Фанатизм - это прежде всего неумение слушать собеседника.

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

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

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

И напоследок, представь такую гипотетическую ситуацию.
Допустим у тебя есть кнопочка в среде разработки, которая запускает скрипт, который я указал выше и он удаляет всех инвалидов. После каждого изменения ты нажимаешь ее а потом создаешь скриптом объекты заново.
С другой стороны ты можешь пользоваться другой кнопочкой, которая просто перекомпилирует всех инвалидов.
По твоему первое удобнее?
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36737876
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Gluk (Kazan)
Если инвалиды допускаются, в принципе, почему не допускать их при
создании объекта?

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

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

Спасибо, что в нике указал имя, я постараюсь в реальной жизни никогда не иметь с тобой дел.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36737891
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop
А теперь аналогия:
Не давать возможность создавать именованый блок кода с ошибками в базе - все равно что не давать возможность сохранить на диске код проекта, и все зависимые модули, если хотя бы один модуль содержит ошибки. Типа исходниками с ошибками могут находиться только в оперативной памяти.

Ты смеёшься, а уродский GPSS редактор именно так и поступал. Какое такое сохранение?
Код содержит ошибки - правь, потом на диск сохранишь.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36737913
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПвон гляди-ка ты, у SergSuper'а в боевой базе инвалидные объекты, и оно даже так и задумывалось.
Если ты в поставке сначала дропнешь объекты, а потом пересоздаешь вместо вызова перекомпиляции - читающий твой скрипт подумает, что это писал какой-то идиот. Да, требование, что инвалидов нет - будет соблюдено.
...
Рейтинг: 0 / 0
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
    #36738020
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Gluk (Kazan)О ... ты ничего не слышал о v$-представлениях ???

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

Я не перестаю удивляться. Это ж насколько надо иметь завышенное самомнение, чтоб так беспардонно выставлять свою невежественность.
all_tables
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
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. Что теперь?
...
Рейтинг: 0 / 0
25 сообщений из 494, страница 19 из 20
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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