Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 SergSuper Спасибо Ваши ответы всегда вдохновляют меня на более глубокое изучение SQL Server... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2001, 15:51 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 SergSuper & Genady Пожалуйста, я хотел бы продолжить дискуссию. Мои размышление привели меня к мысли о том что гораздо выгодней использовать заранее созданную процедуру с Exec внутри, чем создавать эту процедуру заново, ведь временная процедура создается как и обычная, только в TempDB. При ее создании копмилируется куда больше строк чем одна. Да и потом почему это уводит от реляционности. Ведь проблема только в том как передать имя таблицы и ее условие. Мне кажется что реляционность останется тоьлко при случае когда мы сможем использовать одну инстркуцию типа SELECT, в остальных других случаях кажется, реляционнсть как бы снижается. Очень жду Ваших мнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2001, 08:30 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
ИМХО, Слава прав. Создание процедуры занимает больше времени чем вызов exec. Я в свое время сталкивался с такой ситуацией. Мне правдо все равно пришлось использовать временную процедуру, но это было связано с тем, что размер строки запроса, который можно выполнить с помощью exec, огграничен 2000 символов, а у меня этот предел запросто перекрывался (объяснять как слишком долго...). Еще одной причиной, по которой можно предпочеть процедуру exec'у, является необходимость многократного вызова одного и того же вычисленного запроса. Тут я правда не уверен, может быть СКУЛ сервер достаточно умен, чтоб не перекомпилять параметр exec'a много раз, но если это не так, то процедура - лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2001, 18:20 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 andy: >тут я правда не уверен, может быть СКУЛ сервер достаточно умен, чтоб не перекомпилять параметр exec'a много раз, но если это не так, то процедура - лучше. Для этого существует sp_executesql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 05:16 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за мнения. Очень рад был их почитать. Хочу поскорей sp_executesql посмотреть. До следующей дискуссии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 05:33 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Поправеть если я не прав. sp_executesql выполняет строку из Unicode. Она тоже будет перекомпилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 06:14 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Всем, Всем, Всем. Если исходить из мысли, что любая инструкция SELECT не зависимо от количества исполнений компилируется заново, то EXEC всегда удобней. И действительно любая SELECT компилируется заново каждый раз, даже если она не изменялась. Сервер каждый раз компилирует, составляет план, оптимизирует и исполняет. А как иначе проводить самооптимизацию. Не компилируется только, то что сохранено на сервере и что не имеет параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 06:36 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
В предыдущем высказывании я ошибся. Я вообще там все попутал. SELECT сохраненный на сервере не компилируется. Комплириуется только тот который с клиента пришел. EXEC удобен только в определенных случаях, т.е. не во всех. Andy абсолютно прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 08:00 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 Slava У меня небольшой опыт работы с MS SQL, но пока мне ни разу не было нужно, создавать временную процедуру. Если Вас очень интересует когда и как компилирует запросы сервер, то посмотрите в BOL там достаточно подробно все описано. Суть в том что сервер старается использовать повторно все что только можно, т. е. даже если приходит запрос, план выполнения которого уже есть в процедурном кеше, но с другими параметрами, он все равно используется. С процедурами я думаю все и так ясно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 09:54 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Попробую развить свою мысль насчет нежелательности использования EXEC(). Дело в том что язык SQL - это декларативный язык, в котором добавлено кое-что от процедурного. И вот это процедурное всегда уводит от реляционности. А его как раз нужно использовать чтобы сформировать эту строку. И приходиться писать всякие IFы, циклы и др. конструкции. Ну согласитесь, что это некрасиво выглядит: exec('select * from tbl where a='+@a+' and b="'+@b+'"') И это не самый тяжелый случай. Еще один момент - при чтении текста кода гораздо трудней понять что же там происходит. Я начинал работать на 4-м SQL-е, там не было EXEC()-ов и мне их хотелось. Через год или два я перешел на 6.0, там они уже были, но я не стал их использовать. В реальности это оказалось не так красиво, как представлялось. Мои размышление привели меня к мысли о том что гораздо выгодней использовать заранее созданную процедуру с Exec внутри, чем создавать эту процедуру заново, ведь временная процедура создается как и обычная, только в TempDB. Это к чему, я не понял? При чем здесь временная процедура? Зачем создавать заново процедуру? Может можно просто подумать как по другому написать? Может со структурой базы что-то не то? Не знаю, может у меня задача примитивная, но я практически обхожусь без EXEC()-ов. Да и вы потом будете обходиться Извиняюсь за витиеватость и неконкретность изложения, но у меня это всё на уровне интуиции и я не знаю как написать по другому. С приветом Сергей PS. А вообще-то я могу и ошибаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 10:51 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ, Сергей. Кстати, насчет твоей интуиции. По-моему, она у тебя базируется на твоем огромном знании и опыте. Именно поэтому мне так легко довериться твоим рекомендациям в ситуации поиска быстрого решения, даже если ты их никак не обосновываешь. Успехов, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 13:02 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 SergSuper К сожелению я против интуиции в комьютерном вопросе. Здесь на все есть ответ и рациональное зерно. Вы же сами предложили: "Сreate proc #p". Разве это не временная процедура или я опять встрял? В книгах я такого кода вообще не встречал. Конечно всякая БД должна точно соответствовать реляционным правилам, и путь решения любого вопроса желательно искать в этих правилах. Я с этим совершенно согласен. Вот я сижу и переношу БД с InterBase на SQL 2000. Я не успел до конца реляционность проверить, т.к. не я проектировал, но из того что я знаю о начислении зарплаты(со всеми правилами и отчетами), без всякого рода помощи типа EXEC не обойтись. Можно конечно поседеть пару лет, подумать, может что и придумаю, но ведь шефы торопят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 13:49 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 Slava Вообщем-то я не настаиваю. Я просто поделился своими мыслями, если это что-то Вам дало - хорошо, нет - во всяком случае хуже не стало. А временные таблицы и процедуры в примерах я использую что бы каждый мог спокойно запустить у себя и проверить. И вообще любой пример я по возможности стараюсь сначала у себя запустить. Создавать каждый раз постоянные таблицы и процедуры не хочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 14:15 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 Slava. С Вашим мнением насчет интуиции не согласен!!! Вы же сами говорите о сроках. Вот давайте представим, что Вы начали разработку базы с нуля, а не ориентируясь на уже готовый вариант. Если под каждый свой шаг Вы станете искать в умных книжках строчку, обосновывающую данный шаг, то Ваша работа станет напоминать работу поискового сервера, а не разработчика БД Кстати, посмотрите в книгах определение понятия интуиции. Очень хотелось бы говорить с Вами на одном языке... О сроках. Сроки с начальством желательно обсуждать не в разрезе целого проекта, а по этапам его выполнения. Если, конечно, это возможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2001, 14:25 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 AlexUnik Зря Вы про работу поискового сервера. Даже SQL2000 имеет границы. Причем с каждой строчкой из книги они все ближе и ближе. Я уверен, что его познать до конца можно. О сроках. Это Вы конечно очень хорошо предложили, но к сожелению когда я спросил у них сколько времени на проект имеется, то в тот же момент увидел, что они только что об этом задумались. Я не преувеличиваю. У нас в конторе управление минимальное(знаете менеджмент и все такое). Определение понятия интуиция я не читал, поэтому пользуюсь бытовым что ли. Мне кажется, что интуиция это когда человек принимает решение на основе... черт его знает на какой основе, наверно как левая пятка подскажет. Сейчас подумал, что для интуиции есть место в компьютерном вопросе, только не знаю какое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 02:42 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 Slava Интуиция требуется везде, где необходим (большой объем знаний + что-то еще неизвестное или позабытое) для создания полноценного продукта. Вспомните историю создания таблицы Менделеева. Кстати, подвести теоретическую базу под какую-либо разработку (типа принципов нормализации) - так это же надо сначала эту разработку до ума довести Короче интуицию я считаю более препочтительной для себя в вышеописанных случаях, чем метод "научного тыка". Успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 05:24 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
ИНТУИЦИЯ (ср.-век. лат. intuitio, от intueor пристально смотрю), постижение истины путем непосредственного ее усмотрения без обоснования с помощью доказательства; субъективная способность выходить за пределы опыта путем мысленного схватывания («озарения») или обобщения в образной форме непознанных связей, закономерностей. /http://mega.km.ru//bes_98/encyclop.asp?TopicNumber=24686&search=%E8%ED%F2%F3%E8%F6%E8%FF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 06:11 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
"Интуиции бывает достаточно для усмотрения истины, но её недостаточно, чтобы убедить в этой истине других и самого себя. Для этого необходимо доказательство" (БСЭ) См: http://www.rubricon.ru/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 07:03 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Довольно интересные определения Вы коллеги привовдите!!! Но все же мне кажется интуиция 100% нужна когда на базаре арбуз выбираешь(как правило не понятно, что у него внутри). А вот при производстве больших и малых проектов нужно все-таки заранее знать к чему приведет то или иное действие!!! Ну сами посудите если принять решение на основе интуиции например о том добавлять таблицу или нет, нельзя же быть уверенным в том, что она действительно нужна. Ну а вот если применять нормализацию для принятия этого решения, то скорее всего исход решения будет заранее известен. Интуитивный подход нужен при принятии решения о необходимости проекта в обществе, ну никак не при его реализации. Конечно этот же подход годится при продумывании версионности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 07:50 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
2 Slava Коллега, для того, чтобы выбрать арбуз на базаре, нужно гораздо меньше интуиции, чем знания некоторых приемов опознавания структуры сего продукта (я коренной астраханец и уж в этом деле знаю толк) Но для того, чтобы внедрить в жизнь какой-либо информационный проект, интуиции необходимо гораздо больше, чем в первом случае А вопрос о необходимости таблицы и ее "причесанности" с точки зрения нормализации ты сможешь разрешить с помощью теории лишь после того, как он (этот вопрос) у тебя вообще появился. Сожалею, но без некоторой доли интуиции он может и не появиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 09:03 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Интуиция на голом месте не возникает... Обычно ей предшествует некоторый жизненный опыт. После того, как сделаешь несколько обследований при проектировании и набьешь некоторое количество шишек, на N-ом обследовании начинаешь заострять особое внимание при беседе с заказчиком не столько на стандартных бизнес-процессах, которые работают в массе, сколько на случающихся редких исключениях, выпадающих из общей стройной схемы. Вроде отпуска товара, которого на складе нет, формирование продажной цены ДО того как стала известна цена поставщика, оплата нескольких поставок одним большим мешком денег, сумма которого не бьется ни с какой комбинацией произведенных поставок (попробуй-ка распредели эту оплату по поставкам), отпуск товара НЕ по прайсу (по звонку директора). А вот попробуйте догадаться, что при сверках взаиморасчетов с контрагентами случаются контрагенты с совершенно разными ИНН и наименованиями, но от имени которых работаю одни и те же люди, и должна иметься возможность свалить несколько таких контрагентов в одну общую кучу, чтобы составить по ним один совокупный акт сверки взаимрасчетов... Когда же пользователи вдруг обнаруживают, что во всех подобных случаях твоя программа оказывается на высоте, все начинаю восхищаться твоей интуицией. Если бы они знали, что пользователи, для которых писались первые программы были другого мнения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 16:40 |
|
||
|
Вызов SP из другой SP.
|
|||
|---|---|---|---|
|
#18+
Garya, а тебе не кажется, что ты простио научился запихивать весь этот жизненный бред в реляцию? Другими словами, интуиция в данном случае сродни искусству... только для тех кто действительно это понимет. Вот и живем и работаем на грани интуиции и искусства, господа технари! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2001, 17:54 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32006407&tid=1826644]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 260ms |
| total: | 420ms |

| 0 / 0 |
