Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
НовыйЯ Member Откуда: Сообщений: 193 |
Отдельно про них читаешь, всё вроде бы понятно. Но есть ли где-то подробное их сопоставление по пунктам? Принцип хранения, область видимости, максимальный объём, индексирование и, главное, тонкости применения того или иного варианта? У новичка может крышу снести от такого изобилия. Ну, допустим, вьюхи позволяют ограничить набор видимых клиентом полей, также могут быть индексированными и хранятся в виртуальной память, позволяя повысить производительность. CTE вообще как-то по-хитрому с памятью работает, но есть ограничение на использование (только вместе с последующим запросом, который его применят). И так далее. Есть ли где-то нормально собранная информация с инструкцией для применения или хотя бы чтоб в голове нормально уложить по пунктам? |
19 авг 12, 16:20 [13033400] Ответить | Цитировать Сообщить модератору |
flexgen Member Откуда: Город на песке Сообщений: 832 |
Конечно есть - BOL |
||
19 авг 12, 16:38 [13033448] Ответить | Цитировать Сообщить модератору |
НовыйЯ Member Откуда: Сообщений: 193 |
Я рад, что Вы тоже открыли для себя MSDN. К сожалению, он не заменит опыта работы :( |
||||
19 авг 12, 16:46 [13033464] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
Чтобы новый с опытом работы был? |
||||
19 авг 12, 16:53 [13033477] Ответить | Цитировать Сообщить модератору |
НовыйЯ Member Откуда: Сообщений: 193 |
Правил что-то в процедуре своего коллеги с опытом работы более 10 лет, спросил, почему он использует #table, а не @table или CTE, так тот ответил "какая нахрен разница? Если такой любознательный, залезь в мсдн". Так что опыт опыту рознь. Кто-то пытается понять, что дн делает, а кому-то достаточно понимания факта существования на свете МСДНа и худо-бедно работающего кода. |
||||
19 авг 12, 17:08 [13033507] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Утешим новичка? 1. CTE работает точно также как любые запросы. Это только лишь "форма записи", которую оптимизатор разворачивает в обычный запрос. 2. Рекурсивное CTE работает немного иначе. Но тут главное знать: а) никогда не надо применять Рекурсивное CTE; б) если никак не получается без Рекурсивного CTE - см. п. а). |
||
19 авг 12, 17:25 [13033535] Ответить | Цитировать Сообщить модератору |
НовыйЯ Member Откуда: Сообщений: 193 |
Так значит это миф о лучшей производительности CTE? Это не более, чем удобная форма записи? |
||||
19 авг 12, 17:41 [13033567] Ответить | Цитировать Сообщить модератору |
flexgen Member Откуда: Город на песке Сообщений: 832 |
Такой молодой а уже такой хамовитый. :-) Никто Вам свою голову с готовыми знаниями не пересадит, так что, как говорили во времена моей молодости - RTFM. |
||
19 авг 12, 17:50 [13033579] Ответить | Цитировать Сообщить модератору |
НовыйЯ Member Откуда: Сообщений: 193 |
Ну, на нет и суда нет, как говорила моя бабушка :) |
||||
19 авг 12, 17:59 [13033595] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Ничего в CTE особо производительного нету. Ещё CTE добавляет функциональность (рекурсивный подзапрос), который обычными подзапросами не сделать.
|
||||
19 авг 12, 21:17 [13034118] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37151 |
CTE - сахар, и ничего более. Разве что рекурсивное оно, да и то довольно спорно. |
19 авг 12, 21:33 [13034175] Ответить | Цитировать Сообщить модератору |
Читатель неместный
Guest |
это вот о чем? не пробиться ему в админы или в начальники? ) к чему это я... поубивав бы своих админов нафиг. и как совет пофигиста (уже) неумелого неумелому -используй временные таблицы - на записях больше ста они выигрывают -да любое сте (с разумной поддержкой вложенности) можно реализовать простыми запросами -в минимальной форме ознакомиться индексами и добиваться их участия в планах -вьюшка + вьюшка + вьюшка = почти всегда это смерть от непонятных причин -участие табличной функции во вьюшке - тоже туда же вот минимум чего я придерживаюсь |
||
19 авг 12, 21:57 [13034257] Ответить | Цитировать Сообщить модератору |
табличные переменные
Guest |
А табличные переменные? |
19 авг 12, 22:26 [13034349] Ответить | Цитировать Сообщить модератору |
Читатель неместный
Guest |
Ну если это в цункциях, то нужно очень сильно посмотреть в сторону переделки оной в процедуру |
||
19 авг 12, 22:34 [13034359] Ответить | Цитировать Сообщить модератору |
НовыйЯ Member Откуда: Сообщений: 193 |
Как я для себя понял, они хранятся не в темпдб, а в памяти (до определённого предела), и являются более оптимальными по производительности, чем временные таблицы при небольших объёмах данных. Но их нельзя индексировать, как временные или вьюхи, а при больших размерах лучше отдавать предпочтения временным. |
||
19 авг 12, 22:42 [13034375] Ответить | Цитировать Сообщить модератору |
Читатель неместный
Guest |
не совсем... малые таблицы тоже полностью в памяти могут быть и большие переменные тоже могут лечь в темдб (наверно) для табличных переменных "в журналы не пишутся данные", поэтому они быстрее при малых объемах... да и обоснования этого я не искал - чисто по статистике (своей) |
||||
19 авг 12, 22:56 [13034403] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37151 |
|
||
19 авг 12, 22:57 [13034408] Ответить | Цитировать Сообщить модератору |
НовыйЯ Member Откуда: Сообщений: 193 |
А что, можно разве? Да и нужно ли навешивать индексы, туда, куда всё равно объёмов больших не запихнёшь? |
||||
19 авг 12, 23:09 [13034431] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37151 |
Сообщение было отредактировано: 19 авг 12, 23:11 |
||||
19 авг 12, 23:11 [13034443] Ответить | Цитировать Сообщить модератору |
НовыйЯ Member Откуда: Сообщений: 193 |
А, это в том смысле, что индексы неявно создаются при вводе ограничений? Это да, понятно. Я о ручном создании экзотических индексов путём create index... |
||||
19 авг 12, 23:14 [13034454] Ответить | Цитировать Сообщить модератору |
временных в журнал
Guest |
А для временных таблиц разве пишутся в журнал данные? |
||||
19 авг 12, 23:30 [13034514] Ответить | Цитировать Сообщить модератору |
PK - и не уникальный?
Guest |
А без identity не создаст и как это PK - и не уникальный? |
||||
19 авг 12, 23:32 [13034517] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37151 |
Сообщение было отредактировано: 19 авг 12, 23:36 |
||||
19 авг 12, 23:36 [13034528] Ответить | Цитировать Сообщить модератору |
Читатель неместный
Guest |
|
||
19 авг 12, 23:40 [13034539] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9636 |
НовыйЯ, Comparing Table Variables with Temporary Tables |
20 авг 12, 00:03 [13034588] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |