Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
invm Member Откуда: Москва Сообщений: 9632 |
Если же БД не одна, то отдельная служебная БД, имхо, предпочтительнее т.к. может, помимо общеупотребимых таблиц, содержать еще и общеупотребимый код, как нетивный, так и CLR. |
||
25 май 16, 13:08 [19217574] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
вы наверное и в остальном так: распечатали календарь, посмотрели, сожгли и другим смотреть в него запрещаете, пусть свои печатают ... |
||||||
25 май 16, 13:09 [19217588] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
У нас как то работа системы остановилась, потому что календарь кончился :-) Ну и что, баг есть баг, он всегда возможен. Теперь представьте, что используется код для генерации. Код этот вкорячен в тысячу мест, где требуется календарь; кто то делает паст-копи, кто то находит новый код в инете, ветки размножаются. Разные разработчики, за 10 лет, плодят этот код в разных видах, и ещё форматируют его по разному, они появляются и увольняются, один, другой... В разработчиках у нас бывали англичане, индусы, американцы, exUSSR из разных республик и городов, разной квалификации, с разным стилем оформления кода, и даже без стиля (индус-у него каждый фрагмент кода хаотично отформатирован, с произвольными переводами строки, отступами и т.д.). И вот такие баги в коде будут появляться (проявляться) регулярно, в разных местах и в разное время. Вот, скажите, что проще поддерживать, и где меньше вероятность появления багов? |
||
25 май 16, 13:10 [19217594] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
Отлично, уже приходим не просто к коду, а к функции :-) Теперь скажите, зачем делать функцию, генерирующую тысячи раз в секунду одинаковую таблицу, а не записать эту таблицу в память, и использовать? И скажите, какая будет скорость, учитывая, что сервер не сможет построить адекватной статистика по этим вот перемножениям типа 19211437? |
||
25 май 16, 13:14 [19217630] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Как по мне, идеальное решение - системная табличная функция. Везде доступна, хранится в одном месте, не зависит ни от каких объектов, ни от диапазона задаваемый дат. Тоже свои недостатки. Что касается таблицы, Таблица эта вкорячена в тысячу мест, где требуется календарь; кто то делает копии, ... . Разные разработчики, за 10 лет, плодят эту таблицу в разных видах, и ещё модифицируют её по разному, они появляются и увольняются, один, другой... |
||
25 май 16, 13:18 [19217662] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Тут да, не поспоришь, особенно для OLTP систем. |
||
25 май 16, 13:20 [19217679] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
у вас вообще шапито какое-то, а как вы запрещаете не плодить вашу табличную функцию?
|
||||||
25 май 16, 13:23 [19217702] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9632 |
|
||
25 май 16, 13:23 [19217706] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
Кто-то будет, а кто-то будет генерировать, как тут рассказано. Так что таблица сама по себе не спасёт. |
||||
25 май 16, 13:33 [19217794] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
Разумеется, разные разработчики, за 10 лет, модифицируют эту таблицу по разному, но это же делается в одном месте. Вероятность ошибки меньше. И да, таблица равнозначна функции по большинству критериев "пользы". Но по производительности функция проигрывает. Понятно, если в системе календарь используется раз в неделю, то почему бы не написать функцию? Но по всем параметрам я в функции преимуществ не вижу. |
||
25 май 16, 13:38 [19217837] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Так никто не запрещает ничего плодить - ни таблицы, ни функции. Ни в моём решении, ни в чьём-либо другом, которые здесь обсуждались. В этом плане разницы между таблицей и функцией нет, только кроме того, что таблица займёт больше места на диске. Это уже на совести разработчиков.
|
||||||
25 май 16, 13:40 [19217846] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
По крайней мере тогда, когда календарь используется активно. Вот у нас из 1000 процедур календарь, наверное, в 900 Новый разработчик будет как то смотреть код, смотреть систему, наверное, он календарь заметит. А если заметит, то вряд ли будет искать в инете генератор :-) По крайней мере, у нас такого не было. А даже если и будет, то это легко поправить. |
||
25 май 16, 13:42 [19217860] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
Зато производительность. |
||
25 май 16, 13:44 [19217869] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Я, если честно, пользуюсь и таблицей, и функцией, в зависимости от ситуации. Просто все как-то уж сильно в пользу таблиц высказывались.) |
25 май 16, 13:54 [19217957] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9632 |
|
||
25 май 16, 14:03 [19218043] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
системная функция принципиально иначе "вкорячивается" в запросы? |
||
25 май 16, 14:04 [19218056] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
этот балаган логично должен завершиться фразой "Ой всё" :) |
25 май 16, 14:17 [19218144] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
TaPaK, не вижу смысла по легкому троллить человека... Вот честно :) Каждый выбирает сам чем пользоваться. Хоть функцией, хоть таблицей. Я например таблицами генеренными пользуюсь на продакшене. Когда у меня на горизонте маячит проверить запрос на миллиарде данных. Зачем мне их в таблицу пихать и оттуда потом читать. Много разных ситуаций, а оттого и возможных решений :) |
25 май 16, 14:24 [19218201] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
|
||
25 май 16, 14:29 [19218235] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
мы ж тут не абстракцию обсуждаем, а календарь... Он менялся последний раз 4 октября 1582 года :) |
||
25 май 16, 14:29 [19218236] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
вот честно, компромисс в таком разрезе ну ни как не в пользу функций и т.п |
||||
25 май 16, 14:30 [19218251] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Да? Наверное, я не так понял название топика "Список дат между двумя заданными".)) |
||
25 май 16, 14:32 [19218261] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9632 |
|
||
25 май 16, 14:35 [19218291] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
а даты нынче нечто отстраненное и не связанное с привычной многим, кроме вас (естественно) календарём... |
||||
25 май 16, 14:36 [19218294] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
TaPaK, Как-то у вас с терминами не всё в порядке. Путаете понятия "дата" и "календарь", "функция" и "вызов функции", даёте определение "здравого смысла", правда, непонятно на чём основанное. Вы случайно, не философский факультет заканчивали? ) |
25 май 16, 14:46 [19218373] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |