powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов SP из другой SP.
23 сообщений из 48, страница 2 из 2
Вызов SP из другой SP.
    #32006319
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 SergSuper
Спасибо Ваши ответы всегда вдохновляют меня на более глубокое изучение SQL Server...
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006334
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 SergSuper & Genady
Пожалуйста, я хотел бы продолжить дискуссию.
Мои размышление привели меня к мысли о том что гораздо выгодней использовать заранее созданную процедуру с Exec внутри, чем создавать эту процедуру заново, ведь временная процедура создается как и обычная, только в TempDB. При ее создании копмилируется куда больше строк чем одна. Да и потом почему это уводит от реляционности. Ведь проблема только в том как передать имя таблицы и ее условие. Мне кажется что реляционность останется тоьлко при случае когда мы сможем использовать одну инстркуцию типа SELECT, в остальных других случаях кажется, реляционнсть как бы снижается. Очень жду Ваших мнений.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006338
andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИМХО, Слава прав. Создание процедуры занимает больше времени чем вызов exec. Я в свое время сталкивался с такой ситуацией. Мне правдо все равно пришлось использовать временную процедуру, но это было связано с тем, что размер строки запроса, который можно выполнить с помощью exec, огграничен 2000 символов, а у меня этот предел запросто перекрывался (объяснять как слишком долго...).

Еще одной причиной, по которой можно предпочеть процедуру exec'у, является необходимость многократного вызова одного и того же вычисленного запроса. Тут я правда не уверен, может быть СКУЛ сервер достаточно умен, чтоб не перекомпилять параметр exec'a много раз, но если это не так, то процедура - лучше.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006340
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 andy:
>тут я правда не уверен, может быть СКУЛ сервер достаточно умен, чтоб не перекомпилять параметр exec'a много раз, но если это не так, то процедура - лучше.

Для этого существует sp_executesql
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006343
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за мнения. Очень рад был их почитать.
Хочу поскорей sp_executesql посмотреть. До следующей дискуссии.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006345
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправеть если я не прав. sp_executesql выполняет строку из Unicode. Она тоже будет перекомпилировать.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006347
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем, Всем, Всем. Если исходить из мысли, что любая инструкция SELECT не зависимо от количества исполнений компилируется заново, то EXEC всегда удобней. И действительно любая SELECT компилируется заново каждый раз, даже если она не изменялась. Сервер каждый раз компилирует, составляет план, оптимизирует и исполняет. А как иначе проводить самооптимизацию. Не компилируется только, то что сохранено на сервере и что не имеет параметров.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006348
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В предыдущем высказывании я ошибся. Я вообще там все попутал. SELECT сохраненный на сервере не компилируется. Комплириуется только тот который с клиента пришел. EXEC удобен только в определенных случаях, т.е. не во всех.
Andy абсолютно прав.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006362
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Slava
У меня небольшой опыт работы с MS SQL, но пока мне ни разу не было нужно, создавать временную процедуру.

Если Вас очень интересует когда и как компилирует запросы сервер, то посмотрите в BOL там достаточно подробно все описано. Суть в том что сервер старается использовать повторно все что только можно, т. е. даже если приходит запрос, план выполнения которого уже есть в процедурном кеше, но с другими параметрами, он все равно используется. С процедурами я думаю все и так ясно
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006375
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую развить свою мысль насчет нежелательности использования EXEC().
Дело в том что язык SQL - это декларативный язык, в котором добавлено кое-что от процедурного. И вот это процедурное всегда уводит от реляционности. А его как раз нужно использовать чтобы сформировать эту строку. И приходиться писать всякие IFы, циклы и др. конструкции. Ну согласитесь, что это некрасиво выглядит:
exec('select * from tbl where a='+@a+' and b="'+@b+'"')
И это не самый тяжелый случай.
Еще один момент - при чтении текста кода гораздо трудней понять что же там происходит.

Я начинал работать на 4-м SQL-е, там не было EXEC()-ов и мне их хотелось. Через год или два я перешел на 6.0, там они уже были, но я не стал их использовать. В реальности это оказалось не так красиво, как представлялось.

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

Это к чему, я не понял? При чем здесь временная процедура? Зачем создавать заново процедуру? Может можно просто подумать как по другому написать? Может со структурой базы что-то не то?
Не знаю, может у меня задача примитивная, но я практически обхожусь без EXEC()-ов. Да и вы потом будете обходиться

Извиняюсь за витиеватость и неконкретность изложения, но у меня это всё на уровне интуиции и я не знаю как написать по другому.

С приветом Сергей
PS. А вообще-то я могу и ошибаться
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006390
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, Сергей. Кстати, насчет твоей интуиции. По-моему, она у тебя базируется на твоем огромном знании и опыте. Именно поэтому мне так легко довериться твоим рекомендациям в ситуации поиска быстрого решения, даже если ты их никак не обосновываешь.
Успехов, Александр.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006400
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 SergSuper
К сожелению я против интуиции в комьютерном вопросе. Здесь на все есть ответ и рациональное зерно.
Вы же сами предложили: "Сreate proc #p". Разве это не временная процедура или я опять встрял? В книгах я такого кода вообще не встречал.
Конечно всякая БД должна точно соответствовать реляционным правилам, и путь решения любого вопроса желательно искать в этих правилах. Я с этим совершенно согласен.
Вот я сижу и переношу БД с InterBase на SQL 2000. Я не успел до конца реляционность проверить, т.к. не я проектировал, но из того что я знаю о начислении зарплаты(со всеми правилами и отчетами), без всякого рода помощи типа EXEC не обойтись. Можно конечно поседеть пару лет, подумать, может что и придумаю, но ведь шефы торопят.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006407
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Slava

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

А временные таблицы и процедуры в примерах я использую что бы каждый мог спокойно запустить у себя и проверить. И вообще любой пример я по возможности стараюсь сначала у себя запустить. Создавать каждый раз постоянные таблицы и процедуры не хочется.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006409
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Slava.
С Вашим мнением насчет интуиции не согласен!!! Вы же сами говорите о сроках. Вот давайте представим, что Вы начали разработку базы с нуля, а не ориентируясь на уже готовый вариант. Если под каждый свой шаг Вы станете искать в умных книжках строчку, обосновывающую данный шаг, то Ваша работа станет напоминать работу поискового сервера, а не разработчика БД
Кстати, посмотрите в книгах определение понятия интуиции. Очень хотелось бы говорить с Вами на одном языке...
О сроках. Сроки с начальством желательно обсуждать не в разрезе целого проекта, а по этапам его выполнения. Если, конечно, это возможно
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006459
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 AlexUnik
Зря Вы про работу поискового сервера. Даже SQL2000 имеет границы. Причем с каждой строчкой из книги они все ближе и ближе. Я уверен, что его познать до конца можно.
О сроках. Это Вы конечно очень хорошо предложили, но к сожелению когда я спросил у них сколько времени на проект имеется, то в тот же момент увидел, что они только что об этом задумались. Я не преувеличиваю. У нас в конторе управление минимальное(знаете менеджмент и все такое).
Определение понятия интуиция я не читал, поэтому пользуюсь бытовым что ли. Мне кажется, что интуиция это когда человек принимает решение на основе... черт его знает на какой основе, наверно как левая пятка подскажет.
Сейчас подумал, что для интуиции есть место в компьютерном вопросе, только не знаю какое.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006462
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Slava
Интуиция требуется везде, где необходим (большой объем знаний + что-то еще неизвестное или позабытое) для создания полноценного продукта. Вспомните историю создания таблицы Менделеева. Кстати, подвести теоретическую базу под какую-либо разработку (типа принципов нормализации) - так это же надо сначала эту разработку до ума довести Короче интуицию я считаю более препочтительной для себя в вышеописанных случаях, чем метод "научного тыка".
Успехов
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006469
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИНТУИЦИЯ (ср.-век. лат. intuitio, от intueor пристально смотрю), постижение истины путем непосредственного ее усмотрения без обоснования с помощью доказательства; субъективная способность выходить за пределы опыта путем мысленного схватывания («озарения») или обобщения в образной форме непознанных связей, закономерностей.

/http://mega.km.ru//bes_98/encyclop.asp?TopicNumber=24686&search=%E8%ED%F2%F3%E8%F6%E8%FF
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006480
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Интуиции бывает достаточно для усмотрения истины, но её недостаточно, чтобы убедить в этой истине других и самого себя. Для этого необходимо доказательство" (БСЭ)
См: http://www.rubricon.ru/
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006490
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Довольно интересные определения Вы коллеги привовдите!!!
Но все же мне кажется интуиция 100% нужна когда на базаре арбуз выбираешь(как правило не понятно, что у него внутри). А вот при производстве больших и малых проектов нужно все-таки заранее знать к чему приведет то или иное действие!!! Ну сами посудите если принять решение на основе интуиции например о том добавлять таблицу или нет, нельзя же быть уверенным в том, что она действительно нужна. Ну а вот если применять нормализацию для принятия этого решения, то скорее всего исход решения будет заранее известен.
Интуитивный подход нужен при принятии решения о необходимости проекта в обществе, ну никак не при его реализации. Конечно этот же подход годится при продумывании версионности.
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006501
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Slava
Коллега, для того, чтобы выбрать арбуз на базаре, нужно гораздо меньше интуиции, чем знания некоторых приемов опознавания структуры сего продукта (я коренной астраханец и уж в этом деле знаю толк) Но для того, чтобы внедрить в жизнь какой-либо информационный проект, интуиции необходимо гораздо больше, чем в первом случае А вопрос о необходимости таблицы и ее "причесанности" с точки зрения нормализации ты сможешь разрешить с помощью теории лишь после того, как он (этот вопрос) у тебя вообще появился. Сожалею, но без некоторой доли интуиции он может и не появиться
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006548
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интуиция на голом месте не возникает... Обычно ей предшествует некоторый жизненный опыт. После того, как сделаешь несколько обследований при проектировании и набьешь некоторое количество шишек, на N-ом обследовании начинаешь заострять особое внимание при беседе с заказчиком не столько на стандартных бизнес-процессах, которые работают в массе, сколько на случающихся редких исключениях, выпадающих из общей стройной схемы. Вроде отпуска товара, которого на складе нет, формирование продажной цены ДО того как стала известна цена поставщика, оплата нескольких поставок одним большим мешком денег, сумма которого не бьется ни с какой комбинацией произведенных поставок (попробуй-ка распредели эту оплату по поставкам), отпуск товара НЕ по прайсу (по звонку директора). А вот попробуйте догадаться, что при сверках взаиморасчетов с контрагентами случаются контрагенты с совершенно разными ИНН и наименованиями, но от имени которых работаю одни и те же люди, и должна иметься возможность свалить несколько таких контрагентов в одну общую кучу, чтобы составить по ним один совокупный акт сверки взаимрасчетов... Когда же пользователи вдруг обнаруживают, что во всех подобных случаях твоя программа оказывается на высоте, все начинаю восхищаться твоей интуицией. Если бы они знали, что пользователи, для которых писались первые программы были другого мнения...
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006550
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garya, а тебе не кажется, что ты простио научился запихивать весь этот жизненный бред в реляцию? Другими словами, интуиция в данном случае сродни искусству... только для тех кто действительно это понимет. Вот и живем и работаем на грани интуиции и искусства, господа технари!
...
Рейтинг: 0 / 0
Вызов SP из другой SP.
    #32006569
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, читаю Ваши ответы, и как-то легче на душе становится Хорошо, что вы есть.
...
Рейтинг: 0 / 0
23 сообщений из 48, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов SP из другой SP.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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