powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем отличаеться T-SQL от PL/SQL?
190 сообщений из 190, показаны все 8 страниц
Чем отличаеться T-SQL от PL/SQL?
    #34007489
pavel73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие основные отличие T-SQL от PL/SQL?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34007538
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У PL/SQL очень много стандартных библиотек
Синтаксис похож на Паскаль (IMHO более читабельный)
Есть понятие Package (аналог UNIT-a)
Может компилироваться в native code (опционально)

Если английский язык не пугает, то вот ссылка на Oracle Database PL/SQL User's Guide and Reference. Там можно просто полистать на предмет примеров кода - всё станет ясно.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34007546
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34007711
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel73Какие основные отличие T-SQL от PL/SQL?
Различие именно языков - относительно неважный вопрос. Речь скорее стоило бы вести о возможностях.

Отличие именно языков в первую очередь в том, что PL/SQL по архитектуре близок структурным языкам: ADA, PL/1, ALGOL, в то время как авторов T-SQL явно и недвусмысленно вдохновлял BASIC.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34008881
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer в то время как авторов T-SQL явно и недвусмысленно вдохновлял BASIC.
С чего это Вы так решили? С чего это SyBas-у было вдохновляться BASICом?
В T-SQL практически нет никаких логических конструкций - только IF и цикл WHILE. Ни массивов, ни FOR, ни много чего что есть в BASIC. По-моему тут вообще никакого вдохновения не было, просто решили к чистому SQL добавить пару команд.
Другое дело что сложную логику на SQL писать редко когда нужно, но это другой вопрос.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34009202
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper
Другое дело что сложную логику на SQL писать редко когда нужно, но это другой вопрос.

И оооочень спорный.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34009346
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperС чего это Вы так решили?
Хм. По предыдущему опыту, у нас были проблемы с конструктивным обсуждением куда более формализуемого вопроса, так что давайте, для экономии времени скажу "Ну вот решил - и все тут. Потому что похоже".

SergSuperДругое дело что сложную логику на SQL писать редко когда нужно
Зависит от решаемой задачи. Если она тривиальна, то конечно не нужно.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34010469
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтварер, помните, мы с вами как раз в той теме бились по поводу перегрузки? Бог с ней с перегрузкой.
Скажите как эксперт с мировым именем, чем продиктовано ограничение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
	FUNCTION SomeVal(Param IN NUMBER DEFAULT NULL) RETURN NUMBER AS
	BEGIN
		RETURN NULL;
	END;
	FUNCTION MyFunct(SomeVal IN NUMBER DEFAULT SomeVal()) RETURN NUMBER AS
	BEGIN
		RETURN NULL;
	END;
BEGIN
	NULL;
END;
/
что название аргумента не может совпадать с названием функции? (Если сделать SomeVal 1 IN NUMBER DEFAULT SomeVal()) будет PL/SQL procedure successfully completed.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34010710
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoСкажите как эксперт с мировым именем, чем продиктовано ограничение:
Я бы не назвал это ограничением. Если придерживаться строгой терминологии, то это работа в соответствии со спецификацией языка в ситуации, которая если не ошибаюсь никак особо не оговорена, а если по-простому, то компилятор совершенно не обещал реагировать на первое попавшееся извращение так, как хотелось бы какому-то конкретному экспериментатору. Достаточно того, что он реагирует разумно.

Longsvanoчто название аргумента не может совпадать с названием функции?
Чушь. Они могут совпадать, никаких проблем.

Уточните пожалуйста, вы вправду не понимаете, как работает компилятор и почему он рассматривает эту ситуацию как ошибочную? [в сторону - я всегда полагал, что теория компиляторов должна быть обязательной дисциплиной у студентов-программистов, именно по той причине, что иначе они тратят кучу сил на разбор ситуаций типа "компилятор дал какое-то дурацкое сообщение об ошибке, не понимаю, чего он хочет"].
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012132
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДостаточно того, что он реагирует разумно.
О разумности и неразумности мы с вами не договоримся. Поэтому опустим.

авторЧушь. Они могут совпадать, никаких проблем.
В том примере, который я вам показал - не могут. Или сложно запастить его в SQL+ и убедится самому?

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

автор[в сторону - я всегда полагал, что теория компиляторов должна быть обязательной дисциплиной у студентов-программистов, именно по той причине, что иначе они тратят кучу сил на разбор ситуаций типа "компилятор дал какое-то дурацкое сообщение об ошибке, не понимаю, чего он хочет"]
Я тоже всегда это предполагал. Но увы, не студент-программист. Поэтому, собственно, и задал вам вопрос.

Итак, суть вопроса: неужели действительно стандартному компилятору не по силам прожевать указанную конструкцию?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012530
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano авторДостаточно того, что он реагирует разумно.
О разумности и неразумности мы с вами не договоримся. Поэтому опустим.
Хм. Имхо корректная работа в некорректной ситуации - вполне разумное поведение. Хотя я готов полюбопытствовать на тему других точек зрения.

Longsvano авторЧушь. Они могут совпадать, никаких проблем.
В том примере, который я вам показал - не могут. Или сложно запастить его в SQL+ и убедится самому?
Если Вам сложно понять, какую ошибку Вы сделали, это не повод выдвигать глобальные утверждения. Вы действуете примерно так: написали код

Код: plaintext
declare i integer := 'a' ; begin null ; end ;

и на основании результатов компиляции делаете вывод, что в Oracle нельзя определять переменную с именем i.

LongsvanoИтак, суть вопроса: неужели действительно стандартному компилятору не по силам прожевать указанную конструкцию?
Ответ: он прожевывает ее абсолютно корректно.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012557
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли Вам сложно понять, какую ошибку Вы сделали...
Да, мне сложно понять свою ошибку. Если вы ее видете, вы же можете не мудря указать на нее? "Так покажите нам его!"(с)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012610
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoДа, мне сложно понять свою ошибку. Если вы ее видете, вы же можете не мудря указать на нее? "Так покажите нам его!"(с)
Могу. Вы пытаетесь сослаться на объект из внешней области видимости из внутреннего блока, в котором он перекрыт одноименным объектом самого блока.

Ваше идиотское утверждение "имя аргумента не может совпадать с именем функции" опровергается простейшей модификацией Вашего примера:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE
	FUNCTION SomeVal(Param IN NUMBER DEFAULT NULL) RETURN NUMBER AS
	BEGIN
		RETURN NULL;
	END;
	FUNCTION MyFunct(SomeVal IN NUMBER DEFAULT  1 ) RETURN NUMBER AS
	BEGIN
		RETURN NULL;
	END;
BEGIN
	NULL;
END;

Что же до вопроса "как синтаксически корректно написать то, что Вы имели в виду", то в действие вступают стандартные правила поведения при конфликте имен:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<<EXTERNAL>>
DECLARE
	FUNCTION SomeVal(Param IN NUMBER DEFAULT NULL) RETURN NUMBER AS
	BEGIN
		RETURN NULL;
	END;
	FUNCTION MyFunct(SomeVal IN NUMBER DEFAULT External.SomeVal()) RETURN NUMBER AS
	BEGIN
		RETURN NULL;
	END;
BEGIN
	NULL;
END;
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012686
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМогу.
Все понятно. Про оракловский компилер. Все для него убогого надо поточнее указывать, самому [ему] разобраться как будто сложно.

Видать у нас совсем разная идеология - я не вижу конфликта имен там где Оракл его видит. Для меня совершенно разное SomeVal как переменная и SomeVal() как функция, хоть и пишуться одинаково. Как ключ (родник) и ключ гаечный.

Спасибо за проеснение вопроса. Блрю(с).
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012710
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, тяжко с этим жить:

авторSQL> DECLARE
2 SomeVal NUMBER(10);
3 PROCEDURE SomeVal AS
4 BEGIN
5 NULL;
6 END;
7 BEGIN
8 NULL;
9 END;
10 /
PROCEDURE SomeVal AS
*
ERROR at line 3:
ORA-06550: line 3, column 2:
PLS-00305: previous use of 'SOMEVAL' (at line 2) conflicts with this use
ORA-06550: line 3, column 2:
PL/SQL: Item ignored

Посмтрим что по этому поводу думают другие компилеры...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012713
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoВсе понятно. Про оракловский компилер.
Главным образом понятно про Вас. Именно тот случай, когда учить - только портить. Да и поздно, наверное.

LongsvanoВидать у нас совсем разная идеология - я не вижу конфликта имен там где Оракл его видит.
Да, такое бывает. Возможно, при переходе через улицу Вы также не увидите грузовика, с которым сконфликтуете.

Longsvano Для меня совершенно разное SomeVal как переменная и SomeVal() как функция
На своем уровне - подумайте о различиях SomeVal как функции и SomeVal() как функции. Может что и надумаете.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34012796
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
Посмтрим что по этому поводу думают другие компилеры...
Паскалевский тоже не различит.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013138
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На своем уровне - подумайте о различиях SomeVal как функции и SomeVal() как функции. Может что и надумаете.

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

Однако глядя на наш менорский тон можно подумать что вызов без скобок офигеть какое мега-нововведение без которого никак не обойтись. И более того, вы непоследовательны: раз вы, судя по всему за полною однозначность кода, тогда скорее всего в ваших программах всегда вызов функции без аргуметов заканчивается скобками, чтобы понятно было что делается, либо присвоение переменной, либо значения функции.

Проблема только в вызове стандартных SQL-функций типа SYSDATE. Ну так для всех стандартных функций без аргументов можно оставить вызов без скобок. В SQL и так есть зарезервированные слова, которые нельзя использовать для именования переменных и еще от одного несущественного ограничения никто не умрет.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013208
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoПроблема только в вызове стандартных SQL-функций типа SYSDATE. Ну так для всех стандартных функций без аргументов можно оставить вызов без скобок. В SQL и так есть зарезервированные слова, которые нельзя использовать для именования переменных и еще от одного несущественного ограничения никто не умрет.

Тебе наверно ооооочень скушно.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013210
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper Longsvano
Посмтрим что по этому поводу думают другие компилеры...
Паскалевский тоже не различит.

Нет, не получится такой тест провести на C образных языках. Так идеология другая. Там функция имеет право ничего не возвращать.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013230
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
Если запретить синтаксис вызова функций без указания скобок, тогда вообще проблем не вижу, так как скорее всего вызов функций без аргументов - не слишком частый случай.
Тогда будет полноя однозначность: все что со скобками - функция, без - переменная.

Однако глядя на наш менорский тон можно подумать что вызов без скобок офигеть какое мега-нововведение без которого никак не обойтись. И более того, вы непоследовательны: раз вы, судя по всему за полною однозначность кода, тогда скорее всего в ваших программах всегда вызов функции без аргуметов заканчивается скобками, чтобы понятно было что делается, либо присвоение переменной, либо значения функции.

Проблема только в вызове стандартных SQL-функций типа SYSDATE. Ну так для всех стандартных функций без аргументов можно оставить вызов без скобок. В SQL и так есть зарезервированные слова, которые нельзя использовать для именования переменных и еще от одного несущественного ограничения никто не умрет.

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

Для смеха: в pl/sql вызов объектных методов-функций обязан быть со скобками если у метода нет параметров. Но дело в том, что объектами там мало кто пользуется...

2 Longsvano

Вам нужны шашечки, а "нормальным" людям надо работать.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013304
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНазовите, пожалуйста, хоть один паскаль-подобный язык, в котором вызов функции без параметров обязан быть со скобками.

Вот сишник справа ручается что в Сях нельзя вызывать функцию без скобок. И даже это демонстрикуем с удовольствием. Компилятор - какойто от Борланда.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013313
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoЕсли запретить синтаксис вызова функций без указания скобок
То это будет бессмысленный откат на тридцать пять лет назад. Нафиг.

LongsvanoОднако глядя на наш менорский тон можно подумать что вызов без скобок офигеть какое мега-нововведение без которого никак не обойтись.
Это мега-нововведение языка, который развивался в совершенно другой ветке по своим законам. И, кстати, именно лишние скобки, в первую очередь в операторах, с моей точки зрения являются его наиболее неудачной деталью.

LongsvanoИ более того, вы непоследовательны
Я принимаю подход используемого инструмента, пользуюсь его преимуществами и знаю его ограничения.

Если по-Вашему, последовательность - орать "тут все не так, как я привык, а думать мне лень и вообще тяжело, а уж читать тем более", то я действительно непоследователен.

Longsvano: раз вы, судя по всему за полною однозначность кода, тогда скорее всего в ваших программах всегда вызов функции без аргуметов заканчивается скобками, чтобы понятно было что делается, либо присвоение переменной, либо значения функции.
Мои предпочтения, если хотите, давайте обсудим в отдельном топике, к сравнению языков они отношения не имеют.

Озадачившее Вас поведение совершенно типично для языков того семейства, которое я назвал - Алгол и его наследники, в том числе упомянутый SergSuper-ом Паскаль.

Насчет Вашего предложения - я бы порекомендовал изучить предмет до того, как предлагать пути его модификации.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013361
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoНет, не получится такой тест провести на C образных языках
Еще одно... странное утверждение.

Longsvano AI
Назовите, пожалуйста, хоть один паскаль-подобный язык, в котором вызов функции без параметров обязан быть со скобками.
Вот сишник справа ручается что в Сях нельзя вызывать функцию без скобок.
А Си уже стал паскаль-подобным языком? Надо обрадовать старикашку Ника....

А сишник - правильно ручается, нельзя. Это еще терпимо, хотя криво и вызвано только плохо продуманным синтаксисом, а вот необходимость указывать скобки в if, while, catch просто бесит.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013443
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА Си уже стал паскаль-подобным языком? Надо обрадовать старикашку Ника....

В данном случае - неважно. Оба процедурные, значит теоретически подходы более менее одинаковые.

А сишник - правильно ручается, нельзя. Это еще терпимо, хотя криво и вызвано только плохо продуманным синтаксисом, а вот необходимость указывать скобки в if, while, catch просто бесит.

Ну знаете, зоопарк BEGIN - END-ов не лучше {} для тех кто после Си читает PL/SQL. А уж FOR без степа с MOD-ом или TRIM( BOTH FROM ).

И наконец, поставьте себе среду с подстветкой парных скобок. Вон у лиспофилов все в скобках, однако не жужжат.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013460
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano авторНазовите, пожалуйста, хоть один паскаль-подобный язык, в котором вызов функции без параметров обязан быть со скобками.

Вот сишник справа ручается что в Сях нельзя вызывать функцию без скобок. И даже это демонстрикуем с удовольствием. Компилятор - какойто от Борланда.
Прошу прощения что вмешиваюсь в высоконаучный спор. Но хотелось бы ознакомиться с суждением, как же отличить в двух случаях: 1)
func и 2) func() взятие указателя на функцию и результат вызова функции?

От себя: использование скобок в случае вызова и просто имени при взятии адреса намного более читабельное соглашение чем неиспользование скобок в случае вызова и приписывание собачек-крышечек при взятии адреса.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013497
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoВ данном случае - неважно. Оба процедурные, значит теоретически подходы более менее одинаковые.
А... Тогда я с любопытством погляжу на Ваше знакомство с R-LISP. Он тоже процедурный.

LongsvanoИ наконец, поставьте себе среду с подстветкой парных скобок.
Это позволит избавиться от идиотизмов вида if (a==b) ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013521
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano авторА Си уже стал паскаль-подобным языком? Надо обрадовать старикашку Ника....

В данном случае - неважно. Оба процедурные, значит теоретически подходы более менее одинаковые.

А сишник - правильно ручается, нельзя. Это еще терпимо, хотя криво и вызвано только плохо продуманным синтаксисом, а вот необходимость указывать скобки в if, while, catch просто бесит.

Ну знаете, зоопарк BEGIN - END-ов не лучше {} для тех кто после Си читает PL/SQL. А уж FOR без степа с MOD-ом или TRIM( BOTH FROM ).

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

Бэйсик и фортран тоже процедурные языки. Но подход к программированию на них как-то уж очень отличается от паскалевского. А java - С-подобный, и тоже отличается от "классики".

Если надо просто побрюзжать в Вашем стиле, то меня бесят * и для умножения, и для указателей. Давайте уж используем разные символы. То же и для & - разный смысл в разных контекстах.

Что касается begin / end, то их в pl/sql только одна пара на блок. То же самое для всех "пост-паскалевских" языков: ада, модула-2/3, оберон...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013535
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoНу знаете, зоопарк BEGIN - END-ов не лучше {} для тех кто после Си читает PL/SQL.
Ну да, а мумпсисты считают, что вот такое вот:
Код: plaintext
1.
2.
3.
4.
5.
n ea,ez
s ea="" f s ea=$$O^%cpad("A", 3 ,"London",ea) q:ea="" d
.s ez="" f s ez=$$OC^%cpadc("A","Z", 1 ,ea,ez) q:ez="" i
$$G^%cpgd("Z",ez, 2 ,"", 1 )> 19981231  d U^%cpuh("Z",ez, 2 , 19990101 )
.q
q
гораздо лучше (и понятнее) чем SQL

Можно еще Perl-овые перлы в пример привести.

Уж лучше с бегин-ендами, чем со всем этим фигурно-скобчатым скотоложеством.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013584
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIА java - С-подобный
Кстати, не назвал бы. Не больше чем ABIBAS является ADIDAS-подобным :)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013714
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтварер, снимаю шляпу перед ваши багажом знаний.

Возможно в нем есть место и ответу на следующий вопрос:
Вот допустим не устраивает меня PL/SQL для моей предметной области: cлишком громоздким он кажется ну или еще чтото подобное, не важно. Так же как и С+OCI является монстром по сравнению с PL/SQL.
Есть у меня например задача написать обвязку поверх PL/SQL например наподобие Языка 1С. То есть мой транслятор переводит код Языка в PL/SQL он же далее компилится ораклом в свой байткод. Скажите, это как-то реализуется? куда копать? чего почитать? И реализуется ли оно вообще вокруг PL/SQL или я спрашиваю очередное извращение? Или только через С+OCI,
(Понятно, что непонятно как отслеживать рантайм-ошибки при этом да и на этапе компиляции тоже непонятно, но пока это не важно. Посто нужен вектор куда и на что смотреть.)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013747
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нафига изобретать велосипед ? не проще взять какойнибудь готовый недоязык для жава и пройтись напильником, вот тут какие-то есть: http://www.javaworld.com/javaworld/jw-03-2005/jw-0314-scripting.html
а java в оракле встроена в субд.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013774
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
Признаться, не совсем понял вопрос.

Если говорить о том "как написать компилятор", то классическая работа на эту тему - так называемая Книга дракона . Для решения названной задачи ее безусловно хватит и с избытком.

С точки зрения проектирования здесь возникнет достаточное количество интересных вопросов. Но альтернатива "PL/SQL или C+OCI", признаться, несколько выбивает меня из колеи, я просто не понимаю, в каком контексте она может возникнуть. Скажем так, обвязку можно написать и над PL/SQL, и над java, которая также может работать в Oracle, и над клиентской программой на любом языке, и над Си, который затем можно компилить в UDF, если пользоваться традиционной терминологией.....

В любом случае, наиболее интересный здесь, да и наиболее практичный вопрос - самый верхний уровень проектирования решения: каким оно должно быть внешне, чтобы его вообще стоило делать. После этого можно подобрать подходящую реализацию.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013800
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо альтернатива "PL/SQL или C+OCI"
Нет. Задача писать на какомто своем, наиболее приближенном к предметной области языке под Оракл. Вопрос в том, как это наиболее правильно организовать.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013823
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вслепую я бы назвал правильным следующее решение. Во-первых, спроектировать адекватное задаче API. Во-вторых, сделать его на Java либо обвязку к нему на Java. Если сильно зудит 1C, то можно называть классы-методы по-русски. Наконец, автоматизировать deploy достаточно, чтобы разработчик об этом не задумывался. Думаю, на этом бы и остановился.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013842
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВслепую я бы назвал правильным следующее решение.
Вообще у меня на эту тему немного нетехнический вопрос.
Ну вот придумали мы некий язык, java- или 1С- подобный.
И даже сделали препроцессоры для всех модулей (СУБД, APPServer, MQSeries, наконец, C/Java для standalone-задач...).
И даже все это отладили.
Кто же будет на этом писать?
ИМХО с персоналом будут определенные проблемы.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34013955
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я написал как-то "компилятор" на PL/SQL, который создаёт хранимые процедуры (естественно на PL/SQL же). Зечем? Пользователь задаёт какую-то бизнес-логику в GUI и я по ней генерю набор процедур. Их потом можно объединять в цепочки для последовательного или параллельного исполнения. Весь запуск - через DBMS_JOB.

Пример: вытаскиваем все аккаунты, что в статусе "задолжал за месяц", если долг меньше $100 - подождем еще месяц, иначе отсылаем координаты должника мафии для разборок.

А к чему был вопрос-то?
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #34014729
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous Кто же будет на этом писать?
ИМХО с персоналом будут определенные проблемы.
Скажем так, все проблемы решаемы, но не все проблемы стоит решать. Я так или иначе сталкивался с уймой проектов на тему "а вот мы напишем свой язык", и по моим оценкам около 100% из них имели под собой основную побудительную причину "иначе программерам скучно жить". Зато потом - весело, в духе http://www.sql.ru/forum/actualthread.aspx?tid=343049#3188264
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Чем отличаеться T-SQL от PL/SQL?
    #36224280
wildCroissant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все обсуждение полная белиберда, таких программистов которые стараются использовать одно и тоже имя на все случаи жизни надо увольнять без выходного пособия.....когда вижу такое убить хочется.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36224593
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не большой знаток mssql, но явным плюсом пл/скл перед тскл - пакеты (со своими "статическими" переменными) и инвалидность объектов.
Скажем как в mssql поведет себя процедура которая вставляет данные в таблицу, но таблицу переименовали, а процедуру не поправили, в смысле она запустится, чтото сделает пока не дайдет до блока с переименованной таблицей или сразу при вызове крикнет что ошибка?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36224888
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas
Скажем как в mssql поведет себя процедура которая вставляет данные в
таблицу, но таблицу переименовали

Сервер, который позволяет переименовать таблицу, у которой есть
зависимости иначе как "странным" не назовёшь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36224896
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
barrabas
Скажем как в mssql поведет себя процедура которая вставляет данные в
таблицу, но таблицу переименовали

Сервер, который позволяет переименовать таблицу, у которой есть
зависимости иначе как "странным" не назовёшь.
А он таки позволяет!
Больше скажу, позволяет создавать ХП со ссылками на несуществующие к моменту компиляции таблицы.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36224962
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L
Больше скажу, позволяет создавать ХП со ссылками на несуществующие к
моменту компиляции таблицы.

Больше скажу: он позволяет создать триггер с единственным словом "ХРЕН"
внутри и уволиться, а пользователи попробовавшие через через полгода
что-нибудь в этой таблице изменить, будут страшно материться.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36224978
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Баян. ничерта мсскл не отслеживает.
/topic/488306&pg=10#4879780
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225059
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
barrabas
Скажем как в mssql поведет себя процедура которая вставляет данные в
таблицу, но таблицу переименовали

Сервер, который позволяет переименовать таблицу, у которой есть
зависимости иначе как "странным" не назовёшь.

, перед переименование дропать всё пакеты где используется таблица?
Как раз давать переименовывать/дропать можно и нужно, а вот зависимые объекты скидывать в инвалиды как оракл и не компилить(давать выполнять) пока не исправишь.
Кстати у кого кроме оракла еще статусы есть? у посгриса точно не было.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225543
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!Баян. ничерта мсскл не отслеживает.
/topic/488306&pg=10#4879780

Устаревший линк:

Код: plaintext
USE AdventureWorks;\nGO\nCREATE VIEW Production.ApprovedDocuments\nAS\n    SELECT Title, ChangeNumber, Status\n    FROM Production.Document\n    WHERE Status =  2 ;\nGO\nSELECT referenced_schema_name AS schema_name\n    ,referenced_entity_name AS table_name\n    ,referenced_minor_name AS referenced_column\nFROM sys.dm_sql_referenced_entities (\'Production.ApprovedDocuments\', \'OBJECT\');\nGO\nEXEC sp_rename \'Production.Document.ChangeNumber\', \'TrackingNumber\', \'COLUMN\';\nGO\nSELECT referenced_schema_name AS schema_name\n    ,referenced_entity_name AS table_name\n    ,referenced_minor_name AS referenced_column\nFROM sys.dm_sql_referenced_entities (\'Production.ApprovedDocuments\', \'OBJECT\');\nGO

Код: plaintext
1.
2.
3.
4.
5.
6.
Msg 207, Level 16, State 1, Procedure ApprovedDocuments, Line 3
Invalid column name \'ChangeNumber\'.
Msg 2020, Level 16, State 1, Line 1
The dependencies reported for entity "Production.ApprovedDocuments" do not include references to
columns. This is either because the entity references an object that does not exist or because of an
error in one or more statements in the entity.  Before rerunning the query, ensure that there are no
errors in the entity and that all objects referenced by the entity exist.

Код: plaintext
1.
2.
3.
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) 
\tMar 29 2009 10:27:29 
\tCopyright (c) 1988-2008 Microsoft Corporation
\tDeveloper Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225626
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin,

Про WITH SCHEMA_BINDING я в курсе. Но...

pkarklin
Код: plaintext
CREATE VIEW Production.ApprovedDocuments

Код: plaintext
1.
2.
Msg 207, Level 16, State 1,  Procedure  ApprovedDocuments, Line 3
Invalid column name 'ChangeNumber'.

MS не научился правильно определять тип объекта ? :)

Я не понял в примере (он, кстати, отсюда , нехорошо цитировать без указания источника) - какой именно statement возвращает указанные ошибки ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225674
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
че-то не вьехал зачем было селектить из некого sys.dm_sql_referenced_entities когда того же результата можно было бы добится сделав селект из вью.
в том разговоре мы вроде как обсуждали не способность сторед процедур отследить зависимости. вроде там же согласились, что набор костылей в мсскл расширился за последнее время но полноценного инструмента все еще нет.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225706
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!че-то не вьехал зачем было селектить из некого sys.dm_sql_referenced_entities когда того же результата можно было бы добится сделав селект из вью.

А НЕ такого-же? т.е. убедится в том, что таки да, всё валидно?

Yo.!
в том разговоре мы вроде как обсуждали не способность сторед процедур отследить зависимости. вроде там же согласились, что набор костылей в мсскл расширился за последнее время но полноценного инструмента все еще нет.
У каждого свои костыли. У МС - свои, у орацла - свои.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225709
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladpkarklin,

Про WITH SCHEMA_BINDING я в курсе. Но...

pkarklin
Код: plaintext
CREATE VIEW Production.ApprovedDocuments

Код: plaintext
1.
2.
Msg 207, Level 16, State 1,  Procedure  ApprovedDocuments, Line 3
Invalid column name 'ChangeNumber'.

MS не научился правильно определять тип объекта ? :)

Я не понял в примере (он, кстати, отсюда , нехорошо цитировать без указания источника) - какой именно statement возвращает указанные ошибки ?

Тут нет привязки к схеме. На счет типа объкта слив засчитаню ;) Пример из BOL. Не посчтитал необходимым указывать источник. Учту на будущее. Возвращает указанные ошибки запрос к динамической вьюхе sys.dm_sql_referenced_entities.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225733
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!че-то не вьехал зачем было селектить из некого sys.dm_sql_referenced_entities когда того же результата можно было бы добится сделав селект из вью.
в том разговоре мы вроде как обсуждали не способность сторед процедур отследить зависимости. вроде там же согласились, что набор костылей в мсскл расширился за последнее время но полноценного инструмента все еще нет.

Здрасте. Тут же чем кидали в сиквел, что нельзя узнать, валиден объект или нет, без "обращения" к нему. веденная динамическая вьюха, как раз позволяет выяснить валиден объект или нет. Можно привести пример и стаблицами в хранимых процедурах:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
USE AdventureWorks;
GO
CREATE PROC dbo.InvalidProc
AS
  SELECT * FROM dbo.NotExistingTable
GO
SELECT *
FROM sys.dm_sql_referenced_entities ('dbo.InvalidProc', 'OBJECT');
GO

Код: plaintext
1.
2.
3.
4.
Msg 2020, Level 16, State 1, Line 1
The dependencies reported for entity "dbo.InvalidProc" do not include references to columns. This is
either because the entity references an object that does not exist or because of an error in one or
more statements in the entity.  Before rerunning the query, ensure that there are no errors in the entity
and that all objects referenced by the entity exist.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225762
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Здрасте. Тут же чем кидали в сиквел, что нельзя узнать, валиден объект или нет, без "обращения" к нему.
если бы вы то же самое со сторед процедурой показали или показали бы как получить список инвалидных объектов БД, это было бы одно. а так вы показали еще один способ тыркнуть во вью и вылететь с эксепшеном. мы вроде и под 2005 с десяток способов валидации вью знаем.
на самом деле за эти годы ничего не изменилось, я все еще жду скриптик (раз уж инструмента по прежнему нет) который скажет ДБА можно ли нажать коммит после наката sql-патча. к стате по прежнему не вьезжаю как мсскл-ные ДБА живут без таких важных вещей.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225842
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!если бы вы то же самое со сторед процедурой показали

CREATE PROC dbo.InvalidProc
Ничитатель?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225848
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!я все еще жду скриптик (раз уж инструмента по прежнему нет) который скажет ДБА можно ли нажать коммит после наката sql-патча. к стате по прежнему не вьезжаю как мсскл-ные ДБА живут без таких важных вещей.
А я всё исчо жду скриптик, который после наката патча на орацл откатит мне патч взад, ежели там паче чаяния таки обнаружатся невалидные объекты
по прежнему не въезжаю, как оракловые ДБА живут без такой важной вещи, да еще и с пред и пост коммитом ДДЛ.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225876
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!,

Пожалуйста:

Код: 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.
USE AdventureWorks;
GO
BEGIN TRAN
GO
CREATE PROC dbo.InvalidProc
AS
  SELECT * FROM dbo.NotExistingTable
GO
CREATE TABLE dbo.T1(col1 int NOT NULL)
GO
CREATE VIEW dbo.V1 AS
  SELECT T.col1 FROM dbo.T1 T
GO
sp_rename 'dbo.T1.col1', 'col2', 'COLUMN';
GO

DECLARE @T TABLE(object_name sysname)
DECLARE @Foo TABLE(col1 int)

DECLARE
  @name sysname
DECLARE Cur CURSOR LOCAL STATIC FOR
SELECT SCHEMA_NAME(o.schema_id) + '.' + name FROM sys.objects o WHERE o.type IN ('P', 'V')

OPEN Cur
FETCH NEXT FROM Cur into @Name
WHILE @@FETCH_STATUS =  0  BEGIN
  BEGIN TRY
    INSERT @Foo SELECT referencing_minor_id FROM sys.dm_sql_referenced_entities (@name, 'OBJECT')
  END TRY
  BEGIN CATCH
    INSERT @T SELECT @name;
  END CATCH;
  FETCH NEXT FROM Cur into @Name  
END
CLOSE Cur
DEALLOCATE Cur

SELECT * FROM @T

IF @@ROWCOUNT >  0  ROLLBACK ELSE COMMIT
GO
SELECT * FROM T1

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
object_name
--------------------------------------------------------------------------------------------------------------------------------
dbo.InvalidProc
dbo.V1

(2 row(s) affected)

Msg 208, Level 16, State 1, Line 1
Invalid object name 'T1'.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225936
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
А я всё исчо жду скриптик, который после наката патча на орацл откатит мне патч взад, ежели там паче чаяния таки обнаружатся невалидные объекты
по прежнему не въезжаю, как оракловые ДБА живут без такой важной вещи, да еще и с пред и пост коммитом ДДЛ.
учитывая, что я не смог до вас донести даже что за попа может приключится с мсскл если накатывать DDL если не выгнав пользователей, то уж синтаксис оракловых команд боюсь слегка за гранью вашего понимания...

2pkarklin
если удастся победить этот дружественный инсталятор от МС, то поставлю mssql2008 express и буду смотреть.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225976
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!что за попа может приключится с мсскл если накатывать DDL если не выгнав пользователей

Я дико извиняюсь, видимо я что-то подзабыл. А какая опа может случится, если мы накатываем DDL в транзакции, и которая, если не сможет наложить Sch-M блокировку на объект из-за активности пользователей тупо будет ждать, пока не отвалится с таймаутом и не откатит то, что успела понаделать?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36225995
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Я дико извиняюсь, видимо я что-то подзабыл. А какая опа может случится, если мы накатываем DDL в транзакции, и которая, если не сможет наложить Sch-M блокировку на объект из-за активности пользователей тупо будет ждать, пока не отвалится с таймаутом и не откатит то, что успела понаделать?

тост второй, круг третий
/topic/488306&pg=11#4883563
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226198
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!не понял, с какой стати юзерские транзакции на read commited будут вести себя как serializable ?? юзерская транзакция выполняет хп1, это ей никто не запретит, дадее запускается батч с патчем, который раставляет блокировки на хп1 и хп2, теперь юзерская транзакция честно дожидается обновления и снятие блокировок. теперь ничто не запретит ей запустить хп2 уже новой версии, обычный read commited.

А зачем SERIALIZABLE? Версионности достаточно.

BOL:

SQL Server does not keep multiple versions of system metadata. Data definition language (DDL) statements on tables and other database objects (indexes, views, data types, stored procedures, and common language runtime functions) change metadata. If a DDL statement modifies an object, any concurrent reference to the object under snapshot isolation causes the snapshot transaction to fail. Read-committed transactions do not have this limitation when the READ_COMMITTED_SNAPSHOT database option is ON.

For example, a database administrator executes the following ALTER INDEX statement.

Код: plaintext
1.
2.
3.
4.
USE AdventureWorks;
GO
ALTER INDEX AK_Employee_LoginID
    ON HumanResources.Employee REBUILD;
GO


Any snapshot transaction that is active when the ALTER INDEX statement is executed receives an error if it attempts to reference the HumanResources.Employee table after the ALTER INDEX statement is executed. Read-committed transactions using row versioning are not affected.

Хотя, если Вам удасться возпроизвести то, что Вы сказали, с любопытством бы на это посмотрел.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226306
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!учитывая, что я не смог до вас донести даже что за попа может приключится с мсскл если накатывать DDL если не выгнав пользователей, то уж синтаксис оракловых команд боюсь слегка за гранью вашего понимания...

Учитывая, что я не смог добится от вас, каким образом можно откатить неудачный патч с оракла, даже выгнав предварительно юзеров..... Или вы, вернувшись "из-за грани понимания" начнёте тёрки про резервные копии и проч.?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226362
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
А зачем SERIALIZABLE? Версионности достаточно.
может я чего не понял ? читаю говорится, что версионность в мсскл способена выполнять DDL в режиме версионности (ну собственно это лет 5 известно и понятно почему) и к тому же DDL из блокировочного RC вырубает версионные транзакции (а вот этого для меня новость). чего тут достаточного не понял совсем.

pkarklin
Хотя, если Вам удасться возпроизвести то, что Вы сказали, с любопытством бы на это посмотрел.
вы меня пугаете, все то же обсуждение:
/topic/488306&pg=11#4884359

ЗЫ. проверил на 2008 в режиме RC с включеной версонностью. никаких чудес и мусор в БД...

locky
Учитывая, что я не смог добится от вас, каким образом можно откатить неудачный патч с оракла, даже выгнав предварительно юзеров..... Или вы, вернувшись "из-за грани понимания" начнёте тёрки про резервные копии и проч.?
я обычно начинаю издеваться после третьего тупого сообщения, вы можете объяснить что вам не понятно в /topic/488306&pg=10#4880191]первых двух объяснениях [/quot] ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226366
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2locky
поправил глючек с урлом:
я обычно начинаю издеваться после третьего тупого сообщения, вы можете объяснить что вам не понятно в первых двух объяснениях ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226378
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2pkarklin
фразу "версионность в мсскл способена выполнять DDL в режиме версионности"
нужно читать как
"версионность в мсскл НЕ способна выполнять DDL в режиме версионности"
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226418
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2pkarklin
взял ваш скрипт, добавил @@error - у меня нифига не пашет:
Код: 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.
BEGIN TRAN
GO
sp_rename 'dbo.a.myname', 'col1', 'COLUMN';
GO
sp_rename 'dbo.b.shit', 'col1', 'COLUMN';
GO

DECLARE @T TABLE(object_name sysname)
DECLARE @Foo TABLE(col1 int)

DECLARE
  @name sysname
DECLARE Cur CURSOR LOCAL STATIC FOR
SELECT SCHEMA_NAME(o.schema_id) + '.' + name FROM sys.objects o WHERE o.type IN ('P', 'V')

OPEN Cur
FETCH NEXT FROM Cur into @Name
WHILE @@FETCH_STATUS =  0  BEGIN
  BEGIN TRY
    INSERT @Foo SELECT referencing_minor_id FROM sys.dm_sql_referenced_entities (@name, 'OBJECT')
  END TRY
  BEGIN CATCH
    INSERT @T SELECT @name;
  END CATCH;
  FETCH NEXT FROM Cur into @Name  
END
CLOSE Cur
DEALLOCATE Cur

SELECT * FROM @T

IF @@ROWCOUNT >  0  and @@error <>  0  ROLLBACK ELSE COMMIT
GO
SELECT * FROM a
получаю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Caution: Changing any part of an object name could break scripts and stored procedures.
Caution: Changing any part of an object name could break scripts and stored procedures.

( 0  row(s) affected)

( 1  row(s) affected)

( 0  row(s) affected)

( 1  row(s) affected)

( 0  row(s) affected)

( 1  row(s) affected)

( 3  row(s) affected)
Msg  3930 , Level  16 , State  1 , Line  26 
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
Msg  3998 , Level  16 , State  1 , Line  1 
Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.

( 8  row(s) affected)

SELECT * FROM @T
вываливает список всех процедур ...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226438
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!2locky
поправил глючек с урлом:
я обычно начинаю издеваться после третьего тупого сообщения, вы можете объяснить что вам не понятно в первых двух объяснениях ?
ну да, ну да, флэшбек на N минут назад.... как я мог забыть про такое?
Нету мне никакого прощения. Не-ту.
Одно только волнует меня
в тынце http://www.oracle.com/technology/products/database/oracle11g/pdf/database-11g-product-family-technical-whitepaper.pdf
В таблице "Feature and Option Availability Matrix" в строке "Flashback Database" - что значат буковки NNY?
А то я, по тупости своей (и по грани понимания) никак не разберу
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226458
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
А то я, по тупости своей (и по грани понимания) никак не разберу
забей, это за гранью твоего умишка
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226466
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!locky
А то я, по тупости своей (и по грани понимания) никак не разберу
забей, это за гранью твоего умишка
Да? Ну может быть.
А то мне сослепу показалось, что flashback database есть не во всех редакциях, и предложенное вами решение как-то не всегда работает, наверное.
Ну скажите что я - ошибался! Я так хочу верить в орацл :(
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36226601
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!,

авторвзял ваш скрипт, добавил @@error - у меня нифига не пашет:

А весь скриптик можно увидеть, включая, создание таблиц и процедур, список которых Вы потом получаете? И, собственно, причем тут проверка на @@error,и уж тем более после SELECT * FROM @T, которая ее обнулит.

А так как были ошибки, то совершенно справедливо:

Код: plaintext
1.
2.
3.
Msg 3930, Level 16, State 1, Line 26
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
Msg 3998, Level 16, State 1, Line 1
Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227164
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
Да? Ну может быть.
да точно, к гадалке не ходи.

lockyА то мне сослепу показалось, что flashback database есть не во всех редакциях, и предложенное вами решение как-то не всегда работает, наверное.
Ну скажите что я - ошибался! Я так хочу верить в орацл :(
значит перед накаткой патча в других редакциях будут делать бэкап.


pkarklin
А весь скриптик можно увидеть, включая, создание таблиц и процедур, список которых Вы потом получаете?
лениво все доставать, но я вроде понял. скрипт вываливает все процедуры где упоминается таблица с переименованой колонкой. т.е. не может отличить нормальные от покареженных.

pkarklin
И, собственно, причем тут проверка на @@error,и уж тем более после SELECT * FROM @T, которая ее обнулит.
при том что я сначала ошибся в формате одного из sp_rename и получил закомиченный ренейм только одного переименования, читай накотлось пол патча. так низя ...

pkarklin
А так как были ошибки, то совершенно справедливо:

тут совсем не понял, можно подробней: у кого были ? у фетча ? так он их все эксепшеном поймал, ошибки sp_rename тоже не мешали комититься.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227189
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!лениво все доставать, но я вроде понял. скрипт вываливает все процедуры где упоминается таблица с переименованой колонкой. т.е. не может отличить нормальные от покареженных.

Гм... А разве не все хп, в которых "упоминается" переименованная колонка, покореженные?

автортут совсем не понял, можно подробней: у кого были ? у фетча ? так он их все эксепшеном поймал, ошибки sp_rename тоже не мешали комититься.

Ошибки возникают при ошибке в зависимостях, и генерит эти ошибки SELECT к вьюхе.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227194
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лет 5-6 работаю с ораклом. Около 6 месяцев начал снова изучать MSSQL 2008. До этого лет 9 назад начинал администратором БД (MSSQL 6.5, 7, 2000 SP3).
Что могу сказать.
Для БДА:
1. Оракл достаточно мощный инструмент (если говорим о 9.2 и выше), но в большенстве тех задач, которые решаются повседневно MSSQL и Oracle на одном уровне.
2. Оракл кросс-платформенный.
3. MSSQL базы легко переносимы.
4. MSSQL тесная интерация с Windows и AD.
5. Больщенство ПО по Windows заточены либо на MSSQL либо на MDAC.
6. Удобный интерфейс администрирования и прогона скриптов. Бесплатные утилиты SQL SMS и Query Analizer.

Для Прогеров:
1. Тех кто пишет на vusial c/c#/vb/vb.net однозначно mssql. Бозее дружелюбный интерфейс, установщик сам включает в состав дистрибутив mssql и разворачивает его.
2. 2005/2008 дает оргомный возможности встраивания своих процедур, триггеров, и др. написаных на NET языках SQL CLR.
3. ИМХО, Единственный весомый плюс оракла вижу это пакеты и легкий просмотр инфалидных объектов по БД. Но как было показано выше можно посмотреть и на mssql.
4. Если выбирать oracle надо немного погружаться в администрирование. т.е. оптимальной настройки PGA и SGA. т.к. оракл выделяет всю память (указанную в конфиге) под себя, а MSSQL по мере надобности (что очень незаменимо для девелопера), но можно настроить и что бы тоже выделял.
5. Ну и наконец LINQ to SQL и ADO.NET.

Для БД:
1. Mssql требует меньше места, чем oracle.
2. По MSSQL много рускоязычной документации: BOL, MSDN, SQL.RU (специалисты в MSSQL форуме более активные и общительные чем в ORACLE, убедился на своем опыте.)
3. По Oracle оффициальный источник в основном на иностранном языке.

Итог: ИМХО MSSQL более приспасоблен к решениям домашнего пользователя, а также разадач малого и среднего бизнеса. Также находит свое применение среди крупных проектов. Oracle ориентирован на мега БД для хранения централизованной информации например MainFrame (в основном *nix системы).

Одна из основных проблем человека - проблема выбора.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227208
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gds1. Mssql требует меньше места, чем oracle.


Имелось ввиду меньше требует ресурсов.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227235
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Гм... А разве не все хп, в которых "упоминается" переименованная колонка, покореженные?
если колонка понятно, что везде, но вываливается же упоминание таблицы (не зависимо от того фигурирует там колонка или нет)


pkarklinОшибки возникают при ошибке в зависимостях, и генерит эти ошибки SELECT к вьюхе.
интересный подход ...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227266
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2gds

ваш пост говорит лишь о том, что вы с ораклом не знакомы даже на уровне презентаций сейзлов. ну а перлы типа "тесная интерация с Windows и AD" говорит, что и представление о мсскл у вас слега детское ...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227301
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!если колонка понятно, что везде, но вываливается же упоминание таблицы (не зависимо от того фигурирует там колонка или нет)

Где вываливается название таблицы? Я же просил показать Вас весь скрипт и весь его вывод.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227336
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Где вываливается название таблицы? Я же просил показать Вас весь скрипт и весь его вывод.
я ответил, что в моем ответе не понятно ? вы потратили хотя бы 5 минут на изучение своего же скрипта ?
в вывод скрипта попадает даже такие процедуры:
CREATE procedure [dbo].[t2]
as
insert into dbo.a values (15,'shit');

сделайте процедуру в которой фигурирует table.col1 и вторую где фигурирует table.col2 и увидите что что в вывод скрипта попадают обе процедуры, не зависимо col1 или col2 сейчас называется колонка.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227361
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
barrabas...зависимые объекты скидывать в инвалиды как оракл и не компилить(давать выполнять) пока не исправишь.
Кстати у кого кроме оракла еще статусы есть? у посгриса точно не было.В DB2 есть. Очень удивлен, что их нет у остальных.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227362
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!я ответил, что в моем ответе не понятно ? вы потратили хотя бы 5 минут на изучение своего же скрипта ?
в вывод скрипта попадает даже такие процедуры:
CREATE procedure [dbo].[t2]
as
insert into dbo.a values (15,'shit');

Да ничего не было понятно в Вашем скрипте. Зачем то анализ @@error воткнули, и sp_rename каких-то неведомых таблиц.

Yo.!сделайте процедуру в которой фигурирует table.col1 и вторую где фигурирует table.col2 и увидите что что в вывод скрипта попадают обе процедуры, не зависимо col1 или col2 сейчас называется колонка.

Ну раз Вы это уже проделали, то, черт возьми, почему я у Вас этот скрипт выдираю с таким трудом?!
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227405
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Да ничего не было понятно в Вашем скрипте. Зачем то анализ @@error воткнули, и sp_rename каких-то неведомых таблиц.
интересный ход, скрипт уже мой.
зачем я внес @@error я объяснил один раз, требуется еще раз ? таблицы, чего полезного вам даст структура неведомых таблиц, чего не видно из предоставленого скрипта и его вывода ?

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

ну и по делу, обычное увеличение размерности поля приводит к ролбэку, т.е. на
alter table a alter column myname varchar(50)
скрипт ошибочно выдает:
Msg 3930, Level 16, State 1, Line 26
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
Msg 3998, Level 16, State 1, Line 1
Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227409
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!скрипт ошибочно выдает:
Msg 3930, Level 16, State 1, Line 26
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
Msg 3998, Level 16, State 1, Line 1
Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.

Вы проверку то @@error убрали, ибо она ТАМ всегда будет 0, вот Вы и коммитите, что нельзя впринципе коммитеть.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227455
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Вы проверку то @@error убрали, ибо она ТАМ всегда будет 0, вот Вы и коммитите, что нельзя впринципе коммитеть.
убрал, алтер ошибочно ролбечится в вывод попадает список всех процедур в которых фигурирует таблица a, все процедуры "прямые".
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227634
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!значит перед накаткой патча в других редакциях будут делать бэкап.

Удобный подход. а главное - универсальный
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227736
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
Удобный подход. а главное - универсальный
он правильный, конечно не так удобно как флашбэк базы, ну уж точно поудобней гаданий "прокатит/не прокатит" в мсскл.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227779
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!locky
Удобный подход. а главное - универсальный
он правильный, конечно не так удобно как флашбэк базы, ну уж точно поудобней гаданий "прокатит/не прокатит" в мсскл.
ну, в 2008 то можно проверить :)
Лично я могу проверить и на 2005, но это не благословленно майкрософтом :)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36270894
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пофлудим немного. ;)
Зато по теме.

С точки зрения синтаксиса - PL несомненно богаче.
НО!
На самом деле, большинство "уникальных" фичей обоих продуктов (PL/SQL нельзя рассматривать в отрыве от Oracle, как и T-SQL без MSSQL) с точки зрения другого языка выглядят либо как ненужные, либо, как неумелая попытка реализовать то, что в другом прекрасно работает изначально.

Основная разница в том, что в TSQL основой остаются SQL-запросы и весь код TSQL выполняется непосредственно под управлением движка СУБД, в то время как PL/SQL - это программы, полноценно скомпилированные вплоть до команд процессора и неким образом взаимодействующие с СУБД.

Поэтому и заходит спор по поводу невалидности объектов - в T-SQL лично я практически не сталкивался с такой проблемой, в наших решениях на MSSQL совершенно нормально применение конструкции:
Код: plaintext
1.
2.
3.
4.
5.
if object_id('SomeTable') is not null
begin
    select @SomeValue = Value
    fom SomeTable
    where SomeField = @SomaVar
end
Смысл в том, что если в базе присутствует некая таблица, то пользуемся ей, если не присутствует - и не надо.
В PL/SQL такую логику в рамках одной процедуры реализовать просто невозможно (если не пользоваться динамикой, конечно).
Ну и такая вещь, как рекомпиляция отдельных запросов в процедре для PL/SQL недоступна. (Хотя соглашусь, что это не ахти какое критичное достоинство, но есть системы, для которых такое актуально).

Из действительно важных лично мне различий - в PL/SQL (по крайнем мере в 10-ке) нельзя в триггере выяснить, для какого набора данных был вызван триггер.
То, что в Oracle есть построчные триггера - это конечно здорово, (и совсем хорошо, что Оракл не тормозит из-за построчной обработки) но то, что нельзя выяснить, какие строки обновились запросом, поднявшим триггер ограничивает уже принятие архитектурных решений.

В любом случае, длятого, чтобы выбрать между этими языками нужно опять же хорошо знать не столько языкаи, сколько сами СУБД.
А решение все равно принимать будет начальник в зависимости от того, какой из фирм была оплачена последняя прочитанния им статья про СУБД в каком-нибудь Вестнике CIO или "Компьютерре". ;)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36270980
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeColo®es
Из действительно важных лично мне различий - в PL/SQL (по крайнем мере в 10-ке) нельзя в триггере выяснить, для какого набора данных был вызван триггер.
То, что в Oracle есть построчные триггера - это конечно здорово, (и совсем хорошо, что Оракл не тормозит из-за построчной обработки) но то, что нельзя выяснить, какие строки обновились запросом, поднявшим триггер ограничивает уже принятие архитектурных решений.


Воистину, специалист подобен флюсу (с) Козьма Прутков
Кстати, PL/SQL далеко не всегда компилируется до команд процессора.
Я бы даже сказал, в исключительно редких случаях
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36305928
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeColo®es
Основная разница в том, что в TSQL основой остаются SQL-запросы и весь код TSQL выполняется непосредственно под управлением движка СУБД, в то время как PL/SQL - это программы, полноценно скомпилированные вплоть до команд процессора и неким образом взаимодействующие с СУБД.


брр. в оракле есть 2 энжина - sql и plsql. а то, что вы говорите - это уже внешние процедуры, вызываемые базой, разве нет ;)?

DeColo®es
То, что в Oracle есть построчные триггера - это конечно здорово, (и совсем хорошо, что Оракл не тормозит из-за построчной обработки) но то, что нельзя выяснить, какие строки обновились запросом, поднявшим триггер ограничивает уже принятие архитектурных решений.


вы с методой обхода мутаций знакомы? она как раз отлично позволяет при помощи пакета, содержащего переменную типа коллекция и еще одного тригера after уровня стейтмент получить список заафекченных в рамках операции строк.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36307896
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aZmDeColo®es
Основная разница в том, что в TSQL основой остаются SQL-запросы и весь код TSQL выполняется непосредственно под управлением движка СУБД, в то время как PL/SQL - это программы, полноценно скомпилированные вплоть до команд процессора и неким образом взаимодействующие с СУБД.
брр. в оракле есть 2 энжина - sql и plsql. а то, что вы говорите - это уже внешние процедуры, вызываемые базой, разве нет ;)?
О том и речь, что PL/SQL это уже не совсем Oracle DB, а некая (пусть и очень плотно) пристроку к нему. ;)

aZmвы с методой обхода мутаций знакомы? она как раз отлично позволяет при помощи пакета, содержащего переменную типа коллекция и еще одного тригера after уровня стейтмент получить список заафекченных в рамках операции строк.С технолонией не знаком.
Но дополнительный триггер - это очередная подпорка, а так хочется уже обходиться без них и в Oracle и в MSSQL.

А ответ на исходный вопрос очень простой: PL/SQL отличается от T-SQL тем, что первый позволяет писать код для баз данных, работающих под управлением Oracle, второй - делать практически то де самое для баз под управлением MSSQL.
Эффективность применения обоих зависит исключительно от квалификации применияющего.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36307916
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeColo®es
Эффективность применения обоих зависит исключительно от квалификации применияющего.
ну да, давай. примени мне эффективно t-sql для логирования любых попыток изменить поле (в том числе и rollbackчных) или сквозной нумерации нескольких таблиц с документами или передачи массива с клиента в сторед процедуру
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308063
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!DeColo®es
Эффективность применения обоих зависит исключительно от квалификации применияющего.
ну да, давай. примени мне эффективно t-sql для логирования любых попыток изменить поле (в том числе и rollbackчных) или сквозной нумерации нескольких таблиц с документамиНе вопрос.
Решение для нумерации тут . SEQUENCE можно задавать динамически, без необходимости делать create:
Код: plaintext
select G$Test.NextValue('DocNum'+convert(varchar( 4 ), year(getdate())))

Аналогично делается и любая другая "внетранзакционная" работа.

Если что-то нужно перенести "через" rollback - есть табличные переменные, rollback к ним не применяется.

А вообше задача "логировать попытки изменить поле, если произошел rollback" мне не очень понятна.
Бизнес , (который заказывает и оплачивает разработку) не просил такого ни разу. По крайней мере, у меня.
Хотелки аналитиков, которым в ТЗ больше написать нечего и фантазии разработчиков - не в счет.

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

Yo.!или передачи массива с клиента в сторед процедуру Одного параметра типа XML пока вполне хватает.

PS И давайте не будем устраивать очередной холивар. Скучно.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308080
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeColo®es
PS И давайте не будем устраивать очередной холивар.
ваши "решения" столь простеньких задачек на столько красиво продемонстрировали, что эффективность решения во многом зависит и от инструмента, что собственно холивар тут абсолютно лишний...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308453
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!ваши "решения" столь простеньких задачекНе путайте бизнес-задачу и то, какими инструментами она решается в конкретной СУБД.
Я не занимаюсь программированием ради программирования - это удел периода олбучения в школе и институте. Жизнь не ставит задачи "внетранзакционного логирования".
Жизнь ставит задачу "шоб усё работало, срок - вчера".
Есть в Оракле изолированные транзакции на уровне синтаксиса PL/SQL - очень рад за него.
Нет изолированных транзакций в какой-то другой СУБД - значит это не самая актуальная проблема эксплуатации такой системы. Проблемы возникают в основном тогда, когда разработчик, привыкший к одной платформе, начинает разрабатывать что-то на другой, не меняя привычную для себя методологию.
Те задачи (например, какая-нибудь хитрая обработка массива данных), для которых в PL/SQL нормальный программист будет пользоваться технологией курсоров, на T-SQL решаются при помощи таблиц и табличных переменных.
В случае, если код "адекватен платформе", оба решения будут и "красивыми" и быстрыми.
Но если попробовать переписать решение PL/SQL на T-SQL "в лоб", считая "задачей" именно использование курсора, а не получение бизнес-результата, разработчика ждет мягко говоря, разочарование.

PS Если вы сможете посмотреть за пределы своей фанатичной и безответной любви к Oracle, вы увидите, что самая хорошая система для России - это не Oracle и не MSSQL и даже не Cache (в котором и блокировок-то человеческих нет, а некоторые решения на его базе продают аж по $1500 за рабочее место) а всеми "правильными" программистами нелюбимый 1С.

Потому, что большинство реальных задач более-менее успешно автоматизируется при помощи решений и алгоритмов, написанных разработчиками 1С и/или на платформе 1С.

А уж что они в качестве хранилища используют и насколько их решения "правильны" с точки зрения абстрактного программиста - никого из бизнеса не волнует.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308944
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 DeColo®es, браво!

при том, что я работал и с навиком и с сапом и успешно внедрял джидиэдвардс, абсолютно согласен с Вами, для нашей страны 1С - это самое то, что надо

а для 1С нормальное хранилище - это MSSQL...оракл только с грядущей версии появится и то я рискну пересесть на него не раньше чем через год и не факт что вообще перейду
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308972
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeColo?esЖизнь не ставит задачи "внетранзакционного логирования".
Жизнь ставит задачу "шоб усё работало, срок - вчера".

Мне вот, например, жизнь ставит задачу "транзакционного логгирования".
Причём включая случаи когда изменяется значение первичного ключа записи.
Как мне решить эту задачу в T-SQL, не впадая в ошибку "запись удалили, а
потом добавили совсем другую"?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308976
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_bob2 DeColo®es, браво!

при том, что я работал и с навиком и с сапом и успешно внедрял джидиэдвардс, абсолютно согласен с Вами, для нашей страны 1С - это самое то, что надо

а для 1С нормальное хранилище - это MSSQL...оракл только с грядущей версии появится и то я рискну пересесть на него не раньше чем через год и не факт что вообще перейду
Они на postgresql перейти нормально не могут.
Если они и там будут полностью блокировать таблицы и писать кривые выборки
сомневаюсь что оно будет быстрее чем на MSSQL.
А вот, к примеру, ежли они связываемые переменные "забудут", это будет вообще эталон
тормозов.
Хотя, может , у заказчиков полно денег и им десяток серверов нефиг делать купить.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308995
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
DeColo?esЖизнь не ставит задачи "внетранзакционного логирования".
Жизнь ставит задачу "шоб усё работало, срок - вчера".

Мне вот, например, жизнь ставит задачу "транзакционного логгирования".
Причём включая случаи когда изменяется значение первичного ключа записи.
Как мне решить эту задачу в T-SQL, не впадая в ошибку "запись удалили, а
потом добавили совсем другую"?

а там (в M$SQL) первичный ключ(автоинкрементный) стало можно менять?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309018
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕНа там (в M$SQL) первичный ключ(автоинкрементный) стало можно менять?
дык ужо лет 10 как можно, даже особо не напрягаясь.. :-)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309028
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕН
а там (в M$SQL) первичный ключ(автоинкрементный) стало можно менять?

А там первичные ключи можно делать только на автоинкрементные поля?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309101
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeColo®es
В случае, если код "адекватен платформе", оба решения будут и "красивыми" и быстрыми.

не флейма не получится, если вы на полном серьезе считаете воркэраунд с xml красивым и что самое примечательное быстрым, то мне парировать нечем.

по 1с - я тоже так когда-то думал. приходится мне иметь дело с crm на основе 1с 8.1, ни я ни бизнес не довольны. бизнес не доволен, что в BI не может вытянуть актуальные данные - доступ то там через oledb, а я и с пол литрами его не осилил. пользователи стонут от интерфейса - мало того, что через RPD, так чтоб телефончик у клиента поменять нужно 8 экранов открыть/закрыть. прайсы на подпиливание процессов тоже были вполне ощутимые. в результате промучившись год именно бизнес созрел выкидывать эту хрень на свалку истории ...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309356
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!DeColo®es
В случае, если код "адекватен платформе", оба решения будут и "красивыми" и быстрыми.

не флейма не получится, если вы на полном серьезе считаете воркэраунд с xml красивым и что самое примечательное быстрым, то мне парировать нечем.
по сравнению с циклами по оракловским массивам воркэраунд с xml вполне можно назвать красивым
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309379
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
не флейма не получится, если вы на полном серьезе считаете воркэраунд с xml красивым и что самое примечательное быстрым, то мне парировать нечем.


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

rowtype
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309430
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSuperпо сравнению с циклами по оракловским массивам воркэраунд с xml вполне можно назвать красивым
ну если полученный масив циклами в темп таблицу сваливать очень может быть, но это не повод так делать в оракле ...

pkarklin
Блин, Yo!, ну я же уже сколько времени назад показывал пример с параметром табличного типа?


кто-то из нас тормозит, я не понял каким боком тут передача с клиента ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309444
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!кто-то из нас тормозит, я не понял каким боком тут передача с клиента ?

Ну уж точно не я... ;)

Table-Valued Parameters (OLE DB)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309455
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А здесь, при работе через ODBС: Table-Valued Parameters (ODBC)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36310087
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!не флейма не получится, если вы на полном серьезе считаете воркэраунд с xml красивым и что самое примечательное быстрым, то мне парировать нечем.Ключевое слово - воркэраунд. Воркэраунд чего? Ораклового решения? Вы просто считаете, что все крутится вокруг оракла и все, что в нем есть правильно.

Я уже устаю объяснять, что у бизнеса нет задачи - "сделать, как в Oracle". И даже задачи передать массив в процедуру - нет.
Бизнесу вообще все равно, как мы будем передавать наборы данных в базу.
Лишь бы передавали. И воркэраунд - это когда бизнесу одну бизнес-операцию разбивают на две.

И почему Вы считаете,что XML - медленно? Потому, что это медленно в Oracle?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36315886
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Блин, Yo!, ну я же уже сколько времени назад показывал пример с параметром табличного типа?

хм, действительно я торможу. чего-то с прошлого отложилоь только передача между процедур.

DeColo®es
И почему Вы считаете,что XML - медленно? Потому, что это медленно в Oracle?
думаю это от того, что застал время когда информатику в школе преподавали и теперь могу и без оракла оценить во, что выливается xml парсинг и гоняние лишних гигобайтов вылезающих из избыточности языка xml.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36336284
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! что выливается xml парсинг и гоняние лишних гигобайтов вылезающих из избыточности языка xml .
А можно с этого места поподробнее?!
Парсинг - в MSSQL уже готовые решения. Да я и сам писал на клиенте, это же обычный текст...

Ладно, расскажите про избыточность, честно, просто интересно?

з.ы. вопрос на засыпку: что можно передавать гигабайтами в массивах(в MSSQL соотв. XML)?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36336294
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteА можно с этого места поподробнее?!
Парсинг - в MSSQL уже готовые решения. Да я и сам писал на клиенте, это же обычный текст...
Ладно, расскажите про избыточность, честно, просто интересно?
з.ы. вопрос на засыпку: что можно передавать гигабайтами в массивах(в MSSQL соотв. XML)?
Тэги - избыточность. Имена - избыточность. Квотирование - избыточность.

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

XML очень избыточен и медлен.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36336324
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
1) Тэги - избыточность. Имена - избыточность. Квотирование - избыточность.

2) Гигабайтами можно передавать информацию. Просто кто-то считает, что гигабайты идут за один запрос, а кто-то считает что они идут за множество запросов.

3) XML очень избыточен и медлен.
1, 3) Это же все зависит от задачи. в некоторых эта избыточность будет занимать такой маленький процент от данных имхо. Хотя у меня лично, честно говоря, таких задач не было на практике, чтобы гигабайты данных в одном запросе, и чтоб юзать XML.
2) Ну, как я понял, тут про один запрос...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36336343
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte1, 3) Это же все зависит от задачи. в некоторых эта избыточность будет занимать такой маленький процент от данных имхо. Хотя у меня лично, честно говоря, таких задач не было на практике, чтобы гигабайты данных в одном запросе, и чтоб юзать XML.

20% - тоже немало, надо сказать... а ведь фактически до 50-ти доходит

Megabyte2) Ну, как я понял, тут про один запрос...
"гигабайты" не слал. а вот десятки мегабайт - да. *опа та еще.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36336354
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Megabyte
А можно с этого места поподробнее?!
Парсинг - в MSSQL уже готовые решения. Да я и сам писал на клиенте, это же обычный текст...

Ладно, расскажите про избыточность, честно, просто интересно?

з.ы. вопрос на засыпку: что можно передавать гигабайтами в массивах(в MSSQL соотв. XML)?

пожалуйте
<?xml version="1.0"
<table_from_one_of_the_biggest_office_in_my_country>
<unique_identificator_of_the_office>1</unique_identificator_of_the_office>
<unique_identificator_of_the_office>2</unique_identificator_of_the_office>
<unique_identificator_of_the_office>3</unique_identificator_of_the_office>
</table_from_one_of_the_biggest_office_in_my_country>

на 3 байта инфы 333 байт хрени, ну и считай сколько хрени будет гонятся при хотя бы паре сотен К транзакций в минуту.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337356
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!пожалуйте
<?xml version="1.0"
<table_from_one_of_the_biggest_office_in_my_country>
<unique_identificator_of_the_office>1</unique_identificator_of_the_office>
<unique_identificator_of_the_office>2</unique_identificator_of_the_office>
<unique_identificator_of_the_office>3</unique_identificator_of_the_office>
</table_from_one_of_the_biggest_office_in_my_country>

на 3 байта инфы 333 байт хрени, ну и считай сколько хрени будет гонятся при хотя бы паре сотен К транзакций в минуту.
такое можно написать только имея паралич мозга.

В реальности будет нечто типа:
Код: plaintext
1.
2.
3.
4.
5.
<?xml version="1.0"
<Offices>
	<ID> 1 </ID>
	<ID> 2 </ID>
        <ID> 3 </ID>
</Offices>
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337503
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSYo.!пожалуйте
<?xml version="1.0"
<table_from_one_of_the_biggest_office_in_my_country>
<unique_identificator_of_the_office>1</unique_identificator_of_the_office>
<unique_identificator_of_the_office>2</unique_identificator_of_the_office>
<unique_identificator_of_the_office>3</unique_identificator_of_the_office>
</table_from_one_of_the_biggest_office_in_my_country>

на 3 байта инфы 333 байт хрени, ну и считай сколько хрени будет гонятся при хотя бы паре сотен К транзакций в минуту.
такое можно написать только имея паралич мозга.

В реальности будет нечто типа:
Код: plaintext
1.
2.
3.
4.
5.
<?xml version="1.0"
<Offices>
	<ID> 1 </ID>
	<ID> 2 </ID>
        <ID> 3 </ID>
</Offices>
94 байта вместо 3-х тоже много
но я бы особо не переживал т.к. увеличение линейное
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337506
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS
В реальности будет нечто типа:

В реальности будет несколько длиннее - там еще всякие namespace и т.п.
Вот, например, реальный вызов Web-service.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<soapenv:Envelope
        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:ejb="http://aaa.ru/EjbSchema" 
        xmlns:per="http://aaa.ru/schema/PersonSearchSchema">
   <soapenv:Header/>
   <soapenv:Body>
   </soapenv:Body>
      <ejb:checkPerson>
         <Persons>
            <per:Person> 76423 </per:Person>
            <per:Person> 9437 </per:Person>
         </Persons>
      </ejb:checkPerson>
   </soapenv:Body>
</soapenv:Envelope>

Но даже в вашем варианте эффективность составила менее 4%
Три байта информации на 79 байт сообщения.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337511
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andreyреальный вызов
При затирании некоторой конфиденциальной инфы ошибся и вставил лишнее закртытие тэга </soapenv:Body>.
Так что вызов получился не совсем реальный.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337536
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы еще посчитайте суммарный размер пакетов TCP, IP и Ethernet. Сравните с изначальными тремя байтами, и дружно перейдите на TJ7
Клоунаду развели, счетоводы.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337551
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в любом случае так как информация в столбцах в основном не идентификаторы а все-таки строки (по крайней мере в тех системах с которыми я сталкивался), плюс даже без xml вся эта маркировка тоже не бесплатна - столбцы, типы данных итп все равно передаются. Так что я-бы не нагнетал тут что использование xml вдруг положит вашу сеть на лопатки :)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337554
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да какая разница, строки, числа...
Взялись байты считать - вываливайте полную раскладку по байтам, начиная прямо с Ethernet'а.
А то здесь играем, здесь не играем, здесь рыбу заворачивали.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337580
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПВзялись байты считать - вываливайте полную раскладку по байтам, начиная прямо с Ethernet'а.
Если какому-то клону раскладка начиная с Ethernet нужна, то пусть этот клоун сам и старается.

Некий товарищ просил пояснить в чем "избыточность xml":
MegabyteЛадно, расскажите про избыточность, честно, просто интересно?
Я надеюсь, что его интерес частично удовлетворен.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337811
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyНекий товарищ просил пояснить в чем "избыточность xml"
Я надеюсь, что его интерес частично удовлетворен.
Это какое-то "пояснение" для лохов.
Мало чем отличается от пояснений типа "вот три байта, а вот я эти три байта положил в табличку MS SQL Server, и получил mdf размером в три мегабайта".
Рассуждения и пояснения на уровне аффтара TJ7
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36337829
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛПДа какая разница, строки, числа...
Взялись байты считать - вываливайте полную раскладку по байтам, начиная прямо с Ethernet'а.
А то здесь играем, здесь не играем, здесь рыбу заворачивали.

всю ночь не спал, считал байты. докладываю, в результате 3 764 поставленных мной опытов выяснилось, что накладные расходы TCP/IP и Ethernet оказались одинаковы, а вот кол-во пакетов с xml не сопоставимы...

StalkerS даже без xml вся эта маркировка тоже не бесплатна - столбцы, типы данных итп все равно передаются.

жутко интересно, где и главное зачем это так передается !? в чем смысл при передачи массива интов каждый элемент описывать ??
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36338069
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
жутко интересно, где и главное зачем это так передается !? в чем смысл при передачи массива интов каждый элемент описывать ??
метаданные передаются в любом случае, может и не для каждого элемента (как именно там устроен например TDS не знаю)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36338197
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПРассуждения и пояснения на уровне аффтара TJ7Буду очень рад, если Вы окажетесь способны на более содержательные рассуждения.
На данный момент в Ваших постах вообще ни толики содержательности не наблюдается. Только что рыбу в них заворачивать.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36338456
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyЛПРассуждения и пояснения на уровне аффтара TJ7Буду очень рад, если Вы окажетесь способны на более содержательные рассуждения.
Да откуда ж им взяться?
В ответ на что?
Доказывать что кто-то там не верблюд - увольте. Сначала пусть попытаются доказать, что оно таки верблюд.
Каких содержательных рассуждений вы ждете в ответ на лепет типа "смотрите, три байта данных превратились в триста байт xml"?
Если подобные высказывания считать аргументом, то аргументом придётся считать и "смотрите, три байта данных превратились в три мегабайта mdf на харде и сотню мегабайт в оперативке, и хрен его знает что там по сети гонится".
Не смешите мои тапки.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36340546
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyНекий товарищ просил пояснить в чем "избыточность xml":
MegabyteЛадно, расскажите про избыточность, честно, просто интересно?
Я надеюсь, что его интерес частично удовлетворен.
Ну очень, очень частично... Но давайте рассматривать реальные ситуации.
ЛП тему толкает!

И даже если допустить, что будет 333 байта лишней информации, то это как-то сильно напряжет сеть, сервер?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36341533
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte
И даже если допустить, что будет 333 байта лишней информации, то это как-то сильно напряжет сеть, сервер?

зависит от.
В данном конкретном случае - врядли.
а если этих случаев будет 300-500 в секунду, за лишней инфы будет не 333 байта, а, скажем 4К - то уже вполне так проблемы.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36341675
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyа если этих случаев будет 300-500 в секунду, за лишней инфы будет не 333 байта, а, скажем 4К - то уже вполне так проблемы.
Ну мы тут вроде говорили про один запрос!
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36341723
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabytelockyа если этих случаев будет 300-500 в секунду, за лишней инфы будет не 333 байта, а, скажем 4К - то уже вполне так проблемы.
Ну мы тут вроде говорили про один запрос!
простите, а у вас приложения, как правило, постят по одному запросу к СУБД?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36341754
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
простите, а у вас приложения, как правило, постят по одному запросу к СУБД?

и пользователей у него один, иначе сложно понять как столь простые вещи так туго доходят...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342105
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клоунада продолжается :)

Сколько говорите ресурсов потратится в оракле на всякие там сотни и тысячи конекшенов?
В сиквеле десять лет назад было около 50 килобайт на конекшен. Сейчас навряд ли меньше.
Кого вы хотите испугать лишними тремя сотнями байт?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342112
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПКлоунада продолжается :)

Сколько говорите ресурсов потратится в оракле на всякие там сотни и тысячи конекшенов?
В сиквеле десять лет назад было около 50 килобайт на конекшен. Сейчас навряд ли меньше.
Кого вы хотите испугать лишними тремя сотнями байт?

Иди учи матчасть.
50 кб на коннекшн - это безусловно здорово.
но гонять пусть даже единицы мегабайт лишней и ненужно инфы - как бы некомильфо/некошерно/нехорошо (нужное - подчеркнуть).
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342122
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky50 кб на коннекшн - это безусловно здорово.
но гонять пусть даже единицы мегабайт лишней и ненужно инфы - как бы некомильфо/некошерно/нехорошо (нужное - подчеркнуть).
Конечно нехорошо.
Кто ж спорит.

Только вот что то не слышно цифр - сколько же байт (килобайт, мегабайт) лишней информации гоняется для передачи трех байт на сервак, хоть бы и в виде трех байт данных, а не в виде трех сотен байт xml. Озвучили бы цифры - сразу бы стало понятно, стоит боятся трех сотен байт, или это капля в море.

Не хотят озвучивать. Сползают на "много раз в секундну много пользователей".
Хорошо, давайте про "много раз в секунду много пользователей".

Сколько ресурсов тратится на это самое "много раз в секунду много пользователей"? Стоит ли боятся трех сотен байт, или это опять капля в море? Снова не озвучивают, возвращаются обратно к "не надо гонять по сети". Ну здрасть, эцнова я, шолб ты нах со своими тремя сотнями, там и без xml тысячи и тысячи летают туда-сюда.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342125
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

стоит боятся. В последний раз мне пришлось гонять данные на сервер не в виде XML (хотя кузявенько так было, красявенько!), а в виде пакованного binary stream - т.к. скуль принципиально не поддерживает массивы, а массивы таки были нужны для приложения, то пришлось иттить на изврат.
И, кстати, XML в данном случае показал себя хуже всех.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342147
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЛП,

стоит боятся. В последний раз мне пришлось гонять данные на сервер не в виде XML (хотя кузявенько так было, красявенько!), а в виде пакованного binary stream - т.к. скуль принципиально не поддерживает массивы, а массивы таки были нужны для приложения, то пришлось иттить на изврат.
И, кстати, XML в данном случае показал себя хуже всех.
Сетевой интерфейс у сиквела что-ли платный? Или зачем ему пакованый binary stream?

Не, ну я понимаю, когда пакованую бинарную сериализацию через gprs-модем проталкивают.
Ну так это потому что иначе через gprs-модем оно пролазит медленно и дорого, независимо от того, стоит ли на другом конце сразу же СУБД, или там есть распаковывающий сервис, или там вообще ничего нет.
А не вовсе не потому, что якобы xml в СУБД тяжело передать/медленно обработать, как в этом пытаются убедить Йораклоиды.

З.Ы. Ну т.е. как бы может быть, что именно в оракле оно действительно тяжело и медленно. Кто ж его знает.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342151
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПСетевой интерфейс у сиквела что-ли платный? Или зачем ему пакованый binary stream?
А не вовсе не потому, что якобы xml в СУБД тяжело передать/медленно обработать, как в этом пытаются убедить Йораклоиды.

Потому что это медленно и много.
именно так, вы таки совершенно правы.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342157
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyПотому что это медленно и много.
именно так, вы таки совершенно правы.
Да да. А медленно потому что оно медленно в оракле (это раз) и потому что 333 байта (это два).
Других аргументов не наблюдается.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342160
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПlockyПотому что это медленно и много.
именно так, вы таки совершенно правы.
Да да. А медленно потому что оно медленно в оракле (это раз) и потому что 333 байта (это два).
Других аргументов не наблюдается.
в оракле то как раз быстро было, к сожалению
А в скуле, к сожалению, было медленно.
Вот так и приходилось крутится.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342174
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyв оракле то как раз быстро было, к сожалению
Почему к сожалению, если быстро? :)
И вообще, вы уж разберитесь там как-нибудь. Ты утверждаешь, что xml в оракле быстро, Йораклоиды утверждают, что xml в оракле медленно, а быстро в оракле массивы. При этом наверное в один голос считате, что массивы это хорошо правильно и красиво. Может что и так. Но драйвер к массиву обсуждается в соседнем топике.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342227
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПlockyв оракле то как раз быстро было, к сожалению
Почему к сожалению, если быстро? :)

"К сожалению" потому что после перехода с оракла на скуль стало медленно, а надо было - чтобы было по крайней мере так же.
ЛП
И вообще, вы уж разберитесь там как-нибудь. Ты утверждаешь, что xml в оракле быстро, Йораклоиды утверждают, что xml в оракле медленно, а быстро в оракле массивы. При этом наверное в один голос считате, что массивы это хорошо правильно и красиво. Может что и так. Но драйвер к массиву обсуждается в соседнем топике.
"XML в оракле - быстро" - такого я не говорил.
Я говорю "XML в скуле - это медленно", это да.
И "XML - это крайне избыточно и медленно" - это да.

А массив - это таки полезно. М.б. и не "правильно и красиво" - зато удобно и практично.
И, как ни странно - быстро. В оракле.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342258
I am Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторпо сравнению с циклами по оракловским массивам воркэраунд с xml вполне можно назвать красивым
Покажите фразу программисту на С++
Покажите фразу программисту на Java
Покажите фразу программисту на С#
...

Результат один, он скажет, что передавать массив в функцию/процедуру с помощью XML - ГОВНОКОД.

Подойдите и спросите у программистов, сколько раз в день они for each (цикл по массиву в C#) то пишут.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342312
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I am Alex

Результат один, он скажет, что передавать массив в функцию/процедуру с помощью XML - ГОВНОКОД.

Подойдите и спросите у программистов, сколько раз в день они for each (цикл по массиву в C#) то пишут.

Что-то вы, друг мой, начинаете смешивать мух с котлетами....
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342512
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteНу очень, очень частично... Но давайте рассматривать реальные ситуации.Давайте рассматривайте. Или для начала хотя бы опишите ситуацию, понимаемую вами как "реальную". А то перлы вроде MegabyteНу мы тут вроде говорили про один запрос! на реальну ситуацию мало похожи.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342688
I am Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky,

Окей попытаюсь объяснить более подробно.

Метод передачи массива в функцию и дальше цикл по нему является стандартом для современных языков программирования (C# ,Java ..)

Было заявлено что, передавать в функцию XML и внутри там парсить его - более красивое решение.

авторпо сравнению с циклами по оракловским массивам воркэраунд с xml вполне можно назвать красивым

Дык вот, моя точка зрения, что с этим утверждение не согласятся 100% современных разработчиков на высокоуровневых языках. (А 99% увидев код с передачей XML, начнут кричать что этим "индусам" надо руки оторвать).
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342690
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
"XML в оракле - быстро" - такого я не говорил.
А как еще можно понимать произошедший обмен репликами:
- утверждается, что xml это медленно, потому что это медленно в оракле
- в оракле как раз быстро
Ладно. Проехали.

Я говорю "XML в скуле - это медленно", это да.
И "XML - это крайне избыточно и медленно" - это да.
...
А массив - быстро. В оракле.
- Почему XML в MS SQL - медленно
- Потому что массивы в Оракле - быстро.

Заметьте, я ни разу не утверждал, что xml это быстро.
Но уровень аргументации утверждающих обратное...

"Я хуею, дорогая редакция" - пишет нам шестилетняя Маша.

А массив - это таки полезно.
Особенно если к массиву драйвер приделать. Вообще непобедимо будет.

М.б. и не "правильно и красиво" - зато удобно и практично.
И, как ни странно - быстро.
Среди айтишников много дураков, но мазохистов не более чем везде.
Если бы всё было так, как вы говорите, и удобно, и практично, и быстро, то до сих пор на массивах бы и сидели. Безо всякого xml, безо всякого sql.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342734
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 I am Alex
Метод передачи массива в функцию и дальше цикл по нему является стандартом для современных языков программирования (C# ,Java ..)
В современных языках программирования много всего есть. В том числе и тесная интеграция с xml тоже. (VB.Net 9 в качестве примера)

авторпо сравнению с циклами по оракловским массивам воркэраунд с xml вполне можно назвать красивым

Дык вот, моя точка зрения, что с этим утверждение не согласятся 100% современных разработчиков на высокоуровневых языках.
Я понимаю, что все сообщения в форуме - они как бы по умолчанию "imho"
Но в Вашем случае это imho надо было делать большим, жирным и фосфорецирующим.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342769
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I am Alexавторпо сравнению с циклами по оракловским массивам воркэраунд с xml вполне можно назвать красивым

Дык вот, моя точка зрения, что с этим утверждение не согласятся 100% современных разработчиков на высокоуровневых языках. (А 99% увидев код с передачей XML, начнут кричать что этим "индусам" надо руки оторвать).ну собственно если Вы считаете возможность работать с массивом признаком высокоуровневого языка, то спорить не о чем

кстати: попробуйте обосновать чем Вам не нравится передача данных через XML (если не рассматривать излишние объёмы данных)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE PROCEDURE ReadXml
  @Xml xml	
AS	
    SET NOCOUNT ON
	
    SELECT
        F.value('Id[1]','int') Id
    FROM @Xml.nodes('//table') T(F)
в чем тут индускость?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342775
I am Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛП,
авторВ современных языках программирования много всего есть. В том числе и тесная интеграция с xml тоже.
Как вы мило передергиваете, я же говорю про то что используется, а не про то что есть
А используются то массивы.

авторЯ понимаю, что все сообщения в форуме - они как бы по умолчанию "imho"
Но в Вашем случае это imho надо было делать большим, жирным и фосфорецирующим.

Опрошено 10 разработчиков .Net что сидят в соседних кубиках. 100% за передачу массива в качестве массива, а не XML.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342825
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 I am Alex
Как вы мило передергиваете, я же говорю про то что используется, а не про то что есть. А используются то массивы.
Нет. Вы говорите именно "про то, что есть".
Передача массива в функцию в современных языках программирования - есть. Передача xml в функцию - точно так же есть.
Итерация по массивам - есть. Итерация по xml - тоже есть.

С какого-то перепоя передачу массивов Вы назвали стандартом.
Фосфорецирующее имхо забыли.

Опрошено 10 разработчиков .Net что сидят в соседних кубиках. 100% за передачу массива в качестве массива, а не XML.
10 мух не могут ошибаться, говно вкусное.

Я лучше буду передавать объекты объектами, а не массивами. Сериализовать тоже как-то удобнее в xml, а не в binary (хотя иногда приходится).
Если это не по стандарту говноедов - мало печали.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36342960
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП10 мух не могут ошибаться, говно вкусное.
А один комар может?

ЛПЯ лучше буду передавать объекты объектами, а не массивами. А где тут про передачу объектов говорилось?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343009
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Bogdanov Andrey
А один комар может?
Конечно может.
Где ж вы видели комара-говноеда.

А где тут про передачу объектов говорилось?
А где изначально говорилсь про передачу массивов?
Данные надо передать, откуда-то куда-то.

Позволю себе напомнить, с чего начался xml-срач
Я уже устаю объяснять, что у бизнеса нет задачи - "сделать, как в Oracle". И даже задачи передать массив в процедуру - нет.
Бизнесу вообще все равно, как мы будем передавать наборы данных в базу.
Лишь бы передавали.

ну и попёрли потоки неадеквата вперемешку с детским лепетом про "я могу оценить во что выливается парсинг и гигабайты инфы", и про новые "стандарты языков программирования", согласно которым данные передавать можно только массивами.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343072
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПА где тут про передачу объектов говорилось?
А где изначально говорилсь про передачу массивов?

Чукча не читатель?
Именно с передачи массива все и началось.
Некий DeColo®es предложил xml именно для передачи масива:
DeColo®esYo.!или передачи массива с клиента в сторед процедуру Одного параметра типа XML пока вполне хватает.
До этого xml в топике не упоминался.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343101
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyИменно с передачи массива все и началось.
Некий DeColo®es предложил xml именно для передачи масива:
DeColo®esYo.!или передачи массива с клиента в сторед процедуру Одного параметра типа XML пока вполне хватает.
До этого xml в топике не упоминался.
Так до этого и массивы не упоминались.

Не бывает задачи "передать с клиента на сервер массив".
Бывает задача "передать с клиента на сервер данные". Массивом или xml-ем - это уже детали реализации.
Спрашивается, почему это вдруг массивом хорошо, а xml-ем плохо?
Потому что триста тридцать три байта, и стандарты языков программирования.
Да-да, эцнова я, шолб ты нах.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343159
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛП
Спрашивается, почему это вдруг массивом хорошо, а xml-ем плохо?


тебе два раза уже объяснили, с чего ты решил что на третий до тебя дойдет ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343179
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!тебе два раза уже объяснили, с чего ты решил что на третий до тебя дойдет ?
Да, я уже два раза слышал, что XML в MS SQL Server медленно потому, что массивы в оракле быстро.
Третий раз эту чушь можно не повторять.
Попытайтесь придумать что-нибудь еще.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343180
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSuper
кстати: попробуйте обосновать чем Вам не нравится передача данных через XML (если не рассматривать излишние объёмы данных)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE PROCEDURE ReadXml
  @Xml xml	
AS	
    SET NOCOUNT ON
	
    SELECT
        F.value('Id[1]','int') Id
    FROM @Xml.nodes('//table') T(F)

по твоему если в мсскл есть конструкции для работы с xml то парсинга не происходит ? или он становится бесплатным ?

SergSuperв чем тут индускость?

в подходе, ресурсы потраченные на парсинг и перекачку хрени не адекватны поставленной задачи. типичный индуский говнокод. тупая строка с разделителем будет на порядок эфективней.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343192
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛП
Да, я уже два раза слышал, что XML в MS SQL Server медленно потому, что массивы в оракле быстро.

ну из этого можно сделать лишь один вывод - тебе тупа не хватает интелекта понять чего тебе говорят. может осознав эту нехитрую мысль уже удалишься почитать про те же табличные переменные, а ? большим дурачком ты себя уже не выставишь, к чему этот спектакль ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343202
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!тупая строка с разделителем будет на порядок эфективней.
И эти люди говорят про индийский говнокод
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343206
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!в подходе, ресурсы потраченные на парсинг и перекачку хрени не адекватны поставленной задачи. типичный индуский говнокод. тупая строка с разделителем будет на порядок эфективней.дык на всё тратятся ресурсы, если так рассуждать надо сервер поставить в тихой комнате и на счетах считать

если на разбор и перекачку тратятся доли процентов времени сервера, но зато не нужно циклами по массивам бегать - то это эффективней в целом будет
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343251
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSuper
если на разбор и перекачку тратятся доли процентов времени сервера, но зато не нужно циклами по массивам бегать - то это эффективней в целом будет
1. а почему именно таги xml гонять ? имхо видовый своп гонять красивей было бы
2. а кто и главное кого заставляет по коллекциям/табличным переменным циклами бегать ?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343899
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I am Alexl
Дык вот, моя точка зрения, что с этим утверждение не согласятся 100% современных разработчиков на высокоуровневых языках. (А 99% увидев код с передачей XML, начнут кричать что этим "индусам" надо руки оторвать).
Как только заведется топик с названием накшалт "Виды передачи наборов информации в си и паскалеподобных языках" - вы там смело сможете озвучить эту мысль.
а в данном топике мнение уважаемых разработчиков на шарпе и си (мол, в шарпе это не есть гуд) - особой роли не играет и может вызвать разве что вежливое внимание.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343905
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I am AlexОпрошено 10 разработчиков .Net что сидят в соседних кубиках. 100% за передачу массива в качестве массива, а не XML.
Ок, пример кода передачи массива в виде массива?
Для скуля 2005.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36343919
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Да, я уже два раза слышал, что XML в MS SQL Server медленно потому, что массивы в оракле быстро.

"после этого - значит вследствии этого" ?
XML в скуле - это медленно, коллекции в оракле и преобразование их в table - это быстро.
Реальность, данная нам в ощущениях - никуда не попрёшь
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344142
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
"после этого - значит вследствии этого" ?
Если Вы не настаиваете на причинно-следственной связи, то и я не буду её искать :)
Соответственно мне мало интересно, что там в оракле быстро, а что не очень. Оракл мне вообще неинтересен.

Но вот вопрос то остался без ответа:
DeColo®esИ почему Вы считаете,что XML - медленно?
Ответ "потому что это медленно в оракле" не в тему, ответ "потому что массивы в оракле быстро" тоже не в тему.

Ваши утверждения "потому что я попробовал на сиквее и у меня было медлено" - в тему, но это не ответ. Мало ли у кого какие неудачные опыты были.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344192
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Ваши утверждения "потому что я попробовал на сиквее и у меня было медлено" - в тему, но это не ответ. Мало ли у кого какие неудачные опыты были.
Покажите удачный опыт, а мы и похохочем.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344202
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
Да я и сам не против похохотать.
Пока что получается.
Триста тридцать три байта - хороший заряд бодрости.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344221
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

ну, я очень раз за вас.
Значит, примеров у вас нет, аргУментов - нет, вы просто "поболтать".
так и запишем.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344236
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЗначит, примеров у вас нет, аргУментов - нет
Как и у Вас, коллега :)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344431
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПlockyЗначит, примеров у вас нет, аргУментов - нет
Как и у Вас, коллега :)
А нафига мне аргУменты?
У меня есть результаты дослидов (правда, не при себе, т.к. я в командировке, а дослиды - на стикере (блин) в конторе)
И эти рэзультаты говорят, что скулевый xml - очень и очень небыстрая штука.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344599
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЛПlockyЗначит, примеров у вас нет, аргУментов - нет
Как и у Вас, коллега :)
А нафига мне аргУменты?
У меня есть результаты дослидов (правда, не при себе, т.к. я в командировке, а дослиды - на стикере (блин) в конторе)
И эти рэзультаты говорят, что скулевый xml - очень и очень небыстрая штука.
Ну а мне нафига аргументы?
У меня есть результаты собственных проверок.
И они показывают, что скулевый xml - очень и очень быстрая штука.
Попытаетесь оспорить? Да не получится у Вас. Ибо Вы такой же пи****ол, как и я, но только стесняетесь в этом признаться.

Весь разговор выеденного яйца не стоит.
Тест прогнать - дело пяти минут.
Процедурина, на вход принимающая строку с xml, на выходе дающая какой-то результат обработки. Количество переданных элементов.
Клиентский код, вызывающий эту процедурину в цикле один миллион раз, и выводящий время.
Процедурина, получающая на вход строку с разделителями. Возвращающая количество элементов.
Клиентский код, вызывающий эту процедурину в цикле один миллион раз, и выводящий время.
Процедурина, получающая на вход строку, ничего не делающая, и возвращающая ничего.
Клиентский код, вызывающий эту процедурину в цикле один миллион раз, и выводящий время.

Три результата в секундах - и можно разговаривать, насколько страшен хмл.
Я это сделал, пока это сообщение писал оно отработало.
Один миллион вызовов - 45с для "xml на входе, количество элементов на выходе", 37с для "строка на входе, ноль на выходе". 25% разницы между функцией, которая что-то делает, и функцией, которая не делает ничего. Раскажите мне еще раз про тяжелый парсинг xml.

Унылым говном по парсингу строки с разделителем можете позаниматься на досуге сами.
Вам лениво это делать? Вам хочеццо языком почесать? Так вы, батенька, пи****ол.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344623
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

код в студию, плиз.
пока что я вижу "миллион вызовов процедуры для получения к-ва значений в xml с одним элементом".
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344644
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
код в студию, плиз.
А шо, сам не справишься?
Ну держи, болезный.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE [dbo].[spTest]
	@xml xml
AS
BEGIN
	SET NOCOUNT ON;
	--select 0;
	select @xml.query('count(/body/id)');
END

GO
Сильно полегчало?

пока что я вижу "миллион вызовов процедуры для получения к-ва значений в xml с одним элементом".
Ну, чем богат.
От тебя и такого не видно :)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344646
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

нда. очень полезный "скрипт", особенно в части понимания - каким образом массив данных подается на скуль и каким образом (и с какой скоростью) данные из него вытягиваются.
А равно - крайне полезная инфа о том - на какой размерности массива были получены замеры.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344668
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
нда. очень полезный "скрипт", особенно в части понимания - каким образом массив данных подается на скуль
Данные подаются на скуль через параметр хранимой процедуры (плять, ну кто бы мог подумать)
Строка вида <body><id>1</id><id>2</id><id>3</id><id>4</id></body>

и каким образом (и с какой скоростью) данные из него вытягиваются.
Если в части понимания этого какие-то проблемы - ну это уже к доктору.
Результат селекта вытягивается через ExecuteScalar()
Это принципиально?

А равно - крайне полезная инфа о том - на какой размерности массива были получены замеры.
На N элементах.
Если хочешь, можешь попробовать на M.
Можешь даже попытаться вывести зависимость величины пресловутой тормознутости парсинга xml от количества.
Если не справишься, то это будет твоим домашним заданием.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344675
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

карочь, сливаешь ты по полной.
Тесты с цифрами - в студию
И, ваще говоря - мне нафиг не нужно к-во элементов, мне нужны сами эти элементы
поэтому - будь бобром, модифицируй свои тесты так, дабы они возвращали максимальный/минимальный/средний (на твой вкус) значений.
К-во итераций - лям, к-во элементов в хмл - 100, 500, 1000
Выполняйте.
По исполнению - доложить, в учтивой форме
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344691
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: потёр пост, слишком уж
смысл был - ЛП отказывается
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344720
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПМодератор: потёр пост, слишком уж
смысл был - ЛП отказывается
Блин, ну хоть смайлик то мог оставить?
Под корень срезал.
Нехороший человек.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344737
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, каждый остался при своих :)
ну и ладно.
всё равно понятно, что парсинг длинного текста - не самое благодарное дело, и XML, вообще говоря - не самая быстрая вещь.
Другое дело, что иногда выхода особого как-бы нет, или, например, быстродействием можно пожертвовать в пользу простоты и удобства.

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344746
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyвсё равно понятно, что парсинг длинного текста - не самое благодарное дело, и XML, вообще говоря - не самая быстрая вещь.
Ты прям как мантру читаешь. Самовнушением занимаешься?

Канешна не самое благодарное. Даже очень неблагодарное. (ладно хоть самому этим неблагодарным делом не приходится заниматься, в отличие от строки с разделителями)
Не самая быстрая вещь. Патамушта тристатридцатьтри.
А самая быстрая быстрая вещь - это драйвер массива.

Но оно и неважно.
Ты главное верь.
Тогда тебе всё будет понятно.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344757
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

самое быстрое - это когда сервер (и клиент) поддерживают нативную передачу массивов данных.
всё остальное - все пляски с бубно, все xml, все строки с разделителями и проч - суть от лукавого, костыли. на костылях - не побегаешь.

ты, кстати, потестируй-ка передачу и получение списка id-шников через xml. это таки и правда небыстро, хоть и красяво
по моим дослидам быстрее всего оказалась как раз строка с разделителями, но парсить её нужно было на clr (t-sql капитально тормозил).
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344772
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
самое быстрое - это когда сервер (и клиент) поддерживают нативную передачу массивов данных.
Не спорю, нативная передача массива - самое быстрое. В случае если надо передать массив .
Веришь, нет, у меня в программах массивов практически нет. Из примитивных типов - весь зоопарк, словари, списки, стеки, деревья, графы, всё есть. Массивов вот только нет.
А так да, драйвер массива всех зарулит.

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

ты, кстати, потестируй-ка передачу и получение списка id-шников через xml.
Ну работал я с xml, давно правда, но страшного ничего не видел.
И сейчас на всякий случай потестировал я передачу. Передаются. Через xml. Переданный xml парсится. ID-шники считаются. Суммировать их тоже пробывал от нечего делать, дабы понять, что они действительно хоть как-то внутре обрабатываются, а не тупо скипаются парсером. Разницы особой не наблюл. По времени получилось, что сделать парсинг переданной строки - на четверть (плюс-минус паровоз) быстрее, чем не сделать ничего с переданной строкой. То есть достаточно быстро выходит.
Не наблюдается ужасов ужасных. Пожалуйста, попытайтесь рассказать ужасы еще раз.

по моим дослидам быстрее всего оказалась как раз строка с разделителями, но парсить её нужно было на clr (t-sql капитально тормозил).
t-sql я вообще не рассматриваю как нечто жизнеспособное
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344791
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

повторюсь - коды тестов в студию
то, что ты показывал - это есть просто фигня какая-то, и на тест не может даже претендовать - уж извини.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344796
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЛП,

повторюсь - коды тестов в студию
то, что ты показывал - это есть просто фигня какая-то, и на тест не может даже претендовать - уж извини.
Прикалываешься что ли?

Тебе чего код нужен?
Код построения строки с N id-шников?
Цикла из M итераций?
Или код вызова SqlCommand.ExecuteScalar?

Не пугай меня.
Я потеряю веру в человеков.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344832
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

нда... сливать - так сливать по полной, верно?
Что-то ты меня разочаровываешь.
то прикидываешься мол "всё знаю да всё видел".
то включаешь "special mode" и делаешь вид, мол "о чем это мы?"
на прямо поставленые вопросы - не отвечаешь, числа и сорцы - скрываешь
те сорцы, которые демонстрируешь - вообще слабо относяся к тематике.
странный ты.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344845
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЧто-то ты меня разочаровываешь.
Дружище, у меня нет цели тебя развлекать :)
Скорее наоборот.

Надо - делай.
Делать просто. Честное слово.
Получишь страшные результаты - приходи.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36344913
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

извини, но к тебе я не приду
стараюсь избегать людей, обретших Веру во что либо.
начиная от, и заканчивая Страшной Верой Во Всемогущий XML
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36421692
Sebl812
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП: +1000 за стойкость!
To Locky: XML - это в самом деле хорошо. Особенно когда клиент нифига о сервере не знает или много знать не хочет (C++ там или Pascal или Fortran или черт в ступи), только .WSDL (ну да это уже другая история).
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36421716
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sebl812,

XML - это безусловно хорошо!
Особенно - в нужном месте, в нужное время и в строго нужном количестве.
А не где попало, всюду, без ограничений.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36423410
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyXML - это безусловно хорошо!
Особенно - в нужном месте, в нужное время и в строго нужном количестве.
А не где попало, всюду, без ограничений.
Думаю, с этим тут многие согласятся, ну разве что кроме Yo ;)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36423432
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,
думаю, это можно расширить на всё,
а не только на ХМЛ.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36424423
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНMegabyte,
думаю, это можно расширить на всё,
а не только на ХМЛ.
Поддерживаю)
...
Рейтинг: 0 / 0
190 сообщений из 190, показаны все 8 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем отличаеться T-SQL от PL/SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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