Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
В этом форму часто встречаются топики по поводу возможностей тех или иных серверов, сравнения этих возможностей, стонов "Хочу вот такую фичу" и злорадствований "У нас это есть, а у вас нету!". А не поговорить ли нам и возможностях, которые наоборот - есть, но не нужны, мешают и т.п.? Я работаю с MS SQL Server 2000. Мне мешают: 1. Журналирование DML (частично мешают). 2. Система безопасности (в теории может помешать, если мне взбредёт в голову перейти на 3-х звенку) 3. Она же - при выполнении exec (<sql>) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 18:30 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
А сама СУБД не мешает? А то понатолкали, понимаешь, возможностей дурацких, да и место она на диске много занимает. Сотри-ка лучше эту гадскую СУБД и поставь-ка Quake или Tetris. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2004, 06:44 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Да, если Вам мешает то, ради чего (в частности) СУБД создавались (система безопасности), то, возможно, стоит подумать о смене средств разработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2004, 07:29 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
авторЯ работаю с MS SQL Server 2000. Мне мешают: 1. Журналирование DML (частично мешают). 2. Система безопасности (в теории может помешать, если мне взбредёт в голову перейти на 3-х звенку) 3. Она же - при выполнении exec (<sql>) dbf спасет отца русской демократии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2004, 10:12 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2All нет, СУБД мне не мешает, и dbf мен не спасёт. Давайте по пунктам. 1. Журналирование. Стоит простая задача: посчитать сальдо по лицевым счетам. Входные данные: Сальдо входящее, начисления, оплаты. Можно написать запрос вида Код: plaintext 1. 2. 3. 4. 5. 6. Мощность "Остатки" ~ 500000, "начисления" ~4500000 (за месяц), Оплата ~450000 (за месяц). Считать поэтому приходиться небольщими порциями, используя временные таблицы. поскольку вставка и удаление из временных таблиц логгируется - это происходит несколько медленнее, чем было бы без логгирования. Более того, существуют гораздо сложные расчеты, при вычислении которых нельзя обойтись простой выборкой, а необходимо использовать промежуточные результаты. Согласен, вполне возможно, что без журналирования можно было бы получить выигрышь "всего" 10-15%... но это тоже немало 2. Система безопасности. Предположим, у меня 3-х звенка: Сервер БД, сервер приложений, клиент. К серверу БД гарантировано ходит только Сервер приложений. Безопасность опять-таки обеспечивается средним слоем. Однако, при каждом обращении среднего слоя к СУБД происходит проверка прав и т.п., что, ессно, снижает общую производительность. Согласен, ненамного (возможно ненамного, без системы безопасности никто ведь не пробовал). 3. права при выполнении - у меня широко используются выборки с переменными фильтрами. В местном FAQ рекомендуют реализовывать их с использованием DSQL. Это значит, что пользователь должен иметь права на select на все интересщющи таблицы/view. Не так уж и важно это... но всё-таки хотелось бы вот так: Exce(<sql>) as <user> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 12:25 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2locky Oracle: 1. alter table nologging ... 3. To enable code to run with Invoker rights, an AUTHID clause needs to be used before the IS or AS keyword in the routine header. The AUTHID clause tells Oracle whether the routine is to be run with the invoker rights (CURRENT_USER), or with the Owner rights (DEFINER). If you do not specify this clause, Oracle by default assumes it to be AUTHID DEFINER. а может все же "супер возможности" нужны ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 13:26 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Система безопасности всегда мешает, но надо ей учится пользоваться. И кроме того, в SQL Server есть такой пользователь как guest... Заведи его, дай ему права админа и с безопасностью будет полный конец... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 13:38 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
1. А в сторону OLAP смотреть не пробовали? А денормализовать (хотя бы остатки хранить) ? Если используете временные таблицы - попробуёте сделать их постоянными (тогда не будет логирования DML операций - их просто не будет). 2. Ну это просто смешно.. Поскольку сервер что-то там каждый раз проверяет - давайте вообще от безопасности откажемся.... А если в Вашу базу будет ходить не один клиент (аппликейшн-сервер), а несколько? В каждом систему безопасности городить? Так это дольше будет работать.. locky3. права при выполнении - у меня широко используются выборки с переменными фильтрами. В местном FAQ рекомендуют реализовывать их с использованием DSQL Необязательно. Набор фильтров хоть и велик, но конечен. Определите его и напишите выборку на каждый случай комбинации фильтров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 13:49 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2Павел 1. В сторону OLAP? Смотрел. Только сводные данные по мощности равны 80% исходных. Остатки храним, а как-же. DML - data manipulation l (не путать с DDL - data definition), т.е. insert, update, delete.... у меня не используются temporary tables, только постоянные (правда, размещенные в tempdb) - процедуры имеют свойство обмениваться данными, так что... 2.А вот не будет у меня в базу ходить никто, кроме сервера приложений! Не надо говорить "А вдруг..." Если такое случится - ладно, включу. Но дайте возможность выключить! 3. Исходные данные: 26 аттрибутов, поиск ведется по комбинациям из 12-ти параметров (справочник лицевых счетов). Сколько комбинаций насчитаем? Да, кстати... Еще предустановленные фильтры, как же без них... А всего справочников 65, в среднем по 5-6 параметров. Сколько мне процедур написать? Вариантов? А производительность их какова будет, а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 19:45 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
а может сервер по быстрее купить? не один а 8 процов и памяти не 512 М а несколько Gb и RAID10 вместо макстор в 5000 оборотов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 01:37 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
А вот не будет у меня в базу ходить никто, кроме сервера приложений! А Вася Пупкин поставит себе EM и ага... Не по злобе, просто из любопытства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 07:58 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Да, DDL-DML, конечно. Звиняйте, обдёрнулся. Перечитал Ваш пост с условиями задачи. Типичный ETL в урезанном виде. Проблема безусловно непростая, но отменять журналирование даже для промежуточных операций - большой оптимизм с Вашей стороны. Какая будет польза от несогласованных результатов промежуточных вычислений? Что с ними делать? Только выкинуть и начать всё заново. locky2.А вот не будет у меня в базу ходить никто, кроме сервера приложений! Не надо говорить "А вдруг..." Если такое случится - ладно, включу. Но дайте возможность выключить! Фигню говорите, дорогой товарищ. База данных является корпаративным ресурсом, обеспечивающим хранение, обработку и безопасность . Делать БД с прицелом только на одно приложение - глупо. Эти данные потом захотят использовать самыми неожиданными способами, если конечно догадаются.... locky3. Исходные данные: 26 аттрибутов, поиск ведется по комбинациям из 12-ти параметров (справочник лицевых счетов). Сколько комбинаций насчитаем? Да, кстати... Еще предустановленные фильтры, как же без них... А всего справочников 65, в среднем по 5-6 параметров. Сколько мне процедур написать? Вариантов? А производительность их какова будет, а? Нормальная будет производительность. Писал я отчёты для бухгалтерских систем, не напугаешь меня этим. На Вашем месте я бы провёл инвентаризацию и анализ часто выполняемых запросов. И исходя из этого моделировал отчётные формы. С фиксированным набором полей ввода для фильтрации/группировки и форматом вывода. А для чересчур привередливых пользователей - универсальная отчётная форма. Если такую вообще можно себе вообразить... Вам правильно советуют прикупить железо. То, что для достижения бОльшей производительности Вы хотите отказаться от самых существенных достоинств СУБД наводит на мысль, что либо Вы неправильно её используете, либо выжали всё, что возможно из имеющихся ресурсов. Второе вероятней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 09:20 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2Lepsik Сервер - 2 камня, 2Gb памяти (max для MS SQL Server 2000 SE). Можно купить новый - но это дороже, причем, если мне не изменяет память, значительно. 2f_w_p А вот что Вася Пупкин сможет поставить и что не сможет поставит.... и будет ли у него доступ к подсети, в которой стоит SQL... это решает сисадмин, и я думаю, что он решит правильно. 2Павел. А с чего вы взяли, что результат будет несогласован? Исходя из соображений, что при расчете отчета обязательно произойдет ошибка? Ну, пока такого не было. А если такое случится... ну что, начнут заново. Кто Вам сказал, что база данных - корпоративный ресурс?? Что на этом сервере кроме одного приложения еще что-то будет крутится? В том случае, что я описывал - имеется ОДНО приложение, сильно нагружающее сервер БД. Ставить на этот же сервер что-либо еще - просто глупо. Тем более, что в данном случае сервер БД используется как надежное хранилище данных для конкретного приложения, и не более. Кстати, отчетные формы не моделируются мной :-). Есть утвержденный перечень отчетных форм, четко описанных... Их и надо реализовывать. А универсальная отчетная форма... ну, на досуге попробуйте придумать универсальную форму, позволяющую построить отчет по льготникам, начислениям, перерасчетам, оплатам, субсидиям, возмещениям, пеням (по всем возможным разрезам аналитики)... И, кстати, я нигде не писал, что в отчетах надо делать поиск и т.д. там не надо. Искать надо в справочниках. Вот там это должно быть быстро. По поводу DSQL - попробуйте мне доказать, что Код: plaintext 1. 2. 3. выполняется быстрее, чем Код: plaintext 1. А теперь тоже самое для связки 12 таблиц. Буду рад примерам. Железо прикуплю, обязательно. Деньги в студию! Нету? Я так и думал. И у меня нету. И у заказчика нету. Из ресурсов железа я еще не всё выжал, но надо же иметь какой-то запас. P.S. Кстати, обратите внимание: в исходном сообщении об отказе от системы безопасности было написано "В теории". Т.е. ПОКА мне это не надо, но я могу представить себе ситуацию, когда мне такое понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 11:25 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
В Oracle параметризованный запрос выполняется СУЩЕСТВЕННО быстрее своего аналога с литералами в том случае, если он ЧАСТО вызывается с РАЗНЫМИ параметрами. Если параметр ЧАСТО одинаков, лучше использовать литерал, так как это дает дополнительную информацию оптимизатору. Издержками на передачу параметров можно пренебречь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 11:48 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
права при выполнении - у меня широко используются выборки с переменными фильтрами. В местном FAQ рекомендуют реализовывать их с использованием DSQL. Это значит, что пользователь должен иметь права на select на все интересщющи таблицы/view. Не так уж и важно это... но всё-таки хотелось бы вот так: Exce(<sql>) as <user> Для сервера приложений вполне нормально, что он _сам_ генерит SQL запросы, т.е использование ХП не нужно (это - один из вариантов DSQL, кстати). Таким образом, никаких контекстов T-SQL для EXEC не будет. Насчет доступа к данным и распределения прав юзеров, так тут какое-то противоречие я вижу: -- система безопасности не нужна -- не хочу, чтобы пользователь имел права на select из всех таблиц. Если исходить из того, что система безопасности все-таки нужна, то можно вполне грамотно ею воспользоваться, а именно: -- Авторизацию пользователей проводить на уровне сервера приложений -- Сам сервер приложений подключить к БД с единственной учетной записью, созданной специально для него -- Для этой записи присвоить статус application role, что не позволит ее использовать вне сервера приложения ------------ Best regards, Jimmy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 12:01 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2Jimmy Конечно, противоречие, если рассматривать эти 2 пожелания совместно. Я хочу чтобы можно было и отключить систему безопасности, и выполнять DSQL под указанными правами. Подключение сервера приложений по Application Role решительно ничего не меняет - права всё равно будут проверятся и на это будет тратится драгоценное время. 2Gluk. В MS SQL тоже, но только в том случае, если при разных значениях параметров генерируется один и тот же план запроса. Если же при разных значениях параметров могут быть сгенерированы разные оптимальные планы.... тут уж увы, велика вероятность, что предварительно скэшированный план не является оптимальным для данного случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 12:37 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
кеширование спасает от hard parse, а не планов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 13:00 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Поэтому при наличии параметров не строится никаких предположений о их значениях. hard parse нагружает Oracle настолько сильно, что в общем случае это выгоднее чем каждый раз составлять выгодный план для заданного значения параметров. Я уже сказал, что иногда выгоднее оставить литерал, но это скорее исключения чем правило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 13:09 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Подключение сервера приложений по Application Role решительно ничего не меняет - права всё равно будут проверятся и на это будет тратится драгоценное время. ??????? Пояснить можно? Время чего и на что ? ------------ Best regards, Jimmy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 13:30 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
To Gluk (Kazan) Насколько я знаю MS SQL там всё точно так же. Использование параметров - хорошая (и правильная) практика. lockyКто Вам сказал, что база данных - корпоративный ресурс?? Ну если это не так, то нафига такая БД вообще нужна? Если это не БД, а хранилище данных для конкретного приложения, и не более - храните всё в реестре. Тут кстати скорее всего и кроется источник всех Ваших проблем - Вы неверно трактуете БД, неправильно её используете. Я, конечно, извиняюсь, Вы имеете право обидеться и обозвать меня всякими словами, но, при всём моём уважении к Вам, это скорее всего так. Взгляд на БД как на корпаративный ресурс поможет не только лучше выстроить бизнес-процессы, но и (при необходимости) выбить деньги под новое железо. Траст ми. lockyКстати, отчетные формы не моделируются мной :-). Есть утвержденный перечень отчетных форм, четко описанных... Их и надо реализовывать. Вот и замечательно! Вам же меньше работы (анализ требований уже выполнен хотя бы частично). Универсальная отчётная форма - безусловно абсурд, не стоит о ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 13:41 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Мешает SQL - снесите нафиг. авторПодключение сервера приложений по Application Role решительно ничего не меняет - права всё равно будут проверятся и на это будет тратится драгоценное время. С чего Вы взяли? авторА вот что Вася Пупкин сможет поставить и что не сможет поставит.... и будет ли у него доступ к подсети, в которой стоит SQL... это решает сисадмин, и я думаю, что он решит правильно. Полагаться на других - глупо. Если сисадмин ошибется и кто-то сделает кирдык данным(например лицо, имеющее доступ в подсеть, не обязательно это ошибка сисадмина) и крайним будет DBA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 17:56 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2Jimmy & Гавриленко С.А. Время чего и на что будет тратиться? Давайте попробуем поглядеть Код: plaintext 1. Упрощенно: 1. Проверяем, что у пользователя или его группы есть доступ к табличке SomeTable на select 2. Проверяем, что у пользователя или его группы нет запрета на select из SomeTable 3. Аналогично для каждой из столбцов таблицы SomeTable 4. Если все права есть - выбираем. Если мне память не изменяет (а может, если не прав - поправьте) разрешения храняться в sysprotects. Индексы есть? Нету? Будем сканить. Есть на что время потратить? С моей точки зрения, есть. Согласен, данная проверка происходит достаточно быстро. При единичном запросе. Усложним. Запросов стало N. Нет, N мало, пусть M. Умножаем время проверки X на количество запросов M - получаем Z секунд времени, потраченного на НЕНУЖНУЮ мне функциональность. 2Павел. Сама по себе БД - не ресурс, ресурс - это информация, предоставляемая моим приложением. Да, можно хранить всё в реестре :-) но, во первых, мало места в йём, во вторых медленно, в третьих - ненадежно... и т.д. Да, БД - хранилище, но всё-ж таки достаточно интеллектуальное. 2Гавриленко С.А. Я говорил, что SQL мешает? Никогда такого не было, да и не скажу этого в будущем. Полагаться на других... Дык ведь приходится... Полагаемся на производителя железа - RAID должен правильно считать контрольные суммы... На производителя софта - транзакции обладают свойствами ACID... Полагаемся на сисадмина - софт настроен правильно... полагаемся на охрану - серверная закрыта, опечатана, доступ в неё строго ограничен... Как же без этого? Самому всё делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 20:49 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
lockyСама по себе БД - не ресурс, ресурс - это информация, предоставляемая моим приложением. Да, можно хранить всё в реестре :-) но, во первых, мало места в йём, во вторых медленно, в третьих - ненадежно... и т.д. Да, БД - хранилище, но всё-ж таки достаточно интеллектуальное. Почему непремено вашим приложением? А другие приложения, которые хотят пользовать эту информацию - должны ходить через ваше приложение или накапливть ту же информацию? Реестр - ненадёжно. Угу. Давайте теперь подумаем чем обеспечивается надёжность в СУБД? Правильно - именно тем, от чего Вы хотите отказаться. Двужфазная фиксация, журналирование и система безопасности. Вперёд - в реестр! Вы не там ищете ресурсы для увеличения производительности. Подумайте об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 06:18 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Уважаемый Locky. К сожалению, пока все ваши рассуждения на тему снижения производительности системы из-за (1) проверок безопасности и (2) журналирования не подкреплены цифрами. Все это напоминает разговор ни о чем. Разумеется, логика подсказывает, что эти факторы несколько замедляют работу (особенно журналирование). Однако насколько? Вы не думали, что возможно, сражаетесь с ветряными мельницами? Что эффект от полного устранения этих "мешающих" вам факторов будет хоть сколько-то заметен при вот таких-то и таких-то реальных условиях работы вашей системы. Опять-таки, гипотетической системы ( "может помешать, если мне взбредёт в голову" и т.п. ). А народ тут тратит время, спорит... Смотрится все это довольно забавно, но и печально, увы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 06:24 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
А вот что Вася Пупкин сможет поставить и что не сможет поставит.... и будет ли у него доступ к подсети, в которой стоит SQL... это решает сисадмин, и я думаю, что он решит правильно. Т.е. предполагается, что сервер БД и сервер приложений в разных подсетях? И что в подсети где стоит SQL сервер никаких пупкиных нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 08:22 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2All Давайте всё-ж таки так: журналирование и безопасность - 2 раздельных вопроса. То, что они озвучены в одном сообщении - не 2 же было писать, верно? 2Павел & mir Угу... двухфазная фиксация... безопасность.. угу... Берём базу статистики (по чему угодно) за прошлые периоды. Для надёжности ставим ей RO (данные то за прошлые периоды всё равно не меняются). Данные испортить не может никто. гарантировано. Значит, журналирование не нужно. Безопасность? Ну, да... читать, теоретически тоже не все могут... Бог с ним, пусть читают все. Зачем тогда нам безопасноть? Начинаем считать по базе всякие полезные отчеты. делаем нечто вроде Код: plaintext 1. 2. 3. 4. 5. 6. 7. что происходит? при заполнении таблички #temp в лог пишется: что было и что стало. затем checkpoint переносит это из лога в саму базу. Т.е. Вместо одной операции записи данных я имею 3: Запись "Было" в лог, Запись "Стало" в лог, запись в базу. Если при выполнении запроса произойдет ошибка - Вам очень будет нужно вернуть табличку #temp в прежнее состояние? Не думаю. Зачем в таком случае мне журналирование? Вроде бы как и ни зачем. Однако, в случае ошибки пойдет откат, который, кстати, тоже занимает время (причем немало, не меньше, чем было время вставки, но, по моим наблюдениям от 1.5 до 3 раз больше). Т.е., теоретически (на практике то как это сделаешь?) операции при отключенным журналировании должны быть минимум на 50% быстрее. Следующее. Если мы всё пишем в лог, в 2-м размере, то и место под этот лог должно быть. Т.е. за ненужную мне возможность я плачу: процессорным временем, временем пользователя, дисковым пространством. Дорого получается. Далее. В Informix, Oracle и (вроде бы) Sybase есть возможность тем или иным образом отключить журналирование для Таблицы/базы. Следовательно, необходимость в этом возникала и, по всеё видимости, неоднократно. По поводу отключения безопасности. Произвести замеры возможности нет, т.к. нет возможности отключить систему безопасности. Но, как мне думается, если принять минимально возможные разрешения, то выигрышь от такого отключения действительно будет минималным. 2f_w_P ну... если Васю охрана пропустит в опечатанную комнату... тогда у него будет доступ к подсети... Я ведь могу изобразить и картинку, где сервер приложений имеет 2 сетевые карты, одна уходит во внешний мир, другая - во внутреннее кольцо с сервером БД и между которыми нет роутинга. По идее.... должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 13:33 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
А вы замените пример на такое Код: plaintext 1. 2. 3. 4. 5. 6. И никаких логов в tempDB. ЗЫ Бой с тенью. Есть например Yaffil Embedded - там права не проверяются, даже логин не нужен. :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 14:00 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2 locky Для r/o данных журналирование (в Oracle) отключается автоматически. не считайте разработчиков СУБД глупее себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 14:02 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Кстати для temporary тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 14:02 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
To locky Тут кто-нибудь утверждал, что 1) журналирование и 2) система безопасности не замедляют работу базы? Вам пытаются сказать. что не в этом счастье, что отключать их - глупо, Вы не туда смотрите. Если сильно хочется, то отключить можно, но в общем случае это глупо. Можете не соглашаться - право ваше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 15:28 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2Tygra Код: plaintext 1. 2. 3. 4. 5. после ошибки видим, что не вставился не только null, но и 1, т.е. операция вставки атомарна, при ошибке откатывается, т.е. ведеться журналирование. Это подтверржадется также тем, что table var представляются в иде временных табличек в tempdb. Кроме того, таблички у меня используются для передачи данных из процедуры в процедуру (правда, не временные, а постоянные разделенные по spid). 2Gluk В MS SQL тоже. Для базы, на которой стоит RO. Но проблема в том, что читаю я из базы RO а пишу в tempdb, для которой журналирование ведеться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 15:30 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
В Oracle не ведется, там журналирование отделено от откатов Журналирование в REDO, откаты в Roolback, Так как операции над временными данными не подлежат восстановлению, журналирование не ведется. Прошу не воспринимать это как начала треда "что лучше" MS SQL 2000 я весьма уважаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 15:51 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
авторЭто подтверржадется также тем, что table var представляются в иде временных табличек в tempdb Об этом уже говорилось в соответствующем разделе форума и было показано, что в основном это не так - таблицы-переменные есть таблицы в памяти. Но я уже думаю, что продолжать дальше не об чем разговор: человек, которые не знает предметную область и пытается еще ее критиковать ..... Ндааа.. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 16:15 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
lockyпосле ошибки видим, что не вставился не только null, но и 1, т.е. операция вставки атомарна, при ошибке откатывается, т.е. ведеться журналирование А может оно сначала попыталось null вставить, а единица потом шла? ;) Хотя скорее всего сначала проверяет, а потом вставляет Я лично считаю что не стоит гоняться за милисекундами и не надо бояться линейной потери производительности - т.е. когда время на потери растёт пропорционально объёму данных(в пределах разумного конечно). Вот когда растёт пропорционально квадрату или еще хуже - тогда да. А затраты времени на проверку прав - ну это как в анекдоте: - Сколько стоит Ваш автомобиль? - С полным баком или без? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 16:16 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2 locky Если мне память не изменяет (а может, если не прав - поправьте) разрешения храняться в sysprotects. Индексы есть? Нету? Будем сканить. Есть на что время потратить? С моей точки зрения, есть. Согласен, данная проверка происходит достаточно быстро. При единичном запросе. Усложним. Запросов стало N. Нет, N мало, пусть M. Умножаем время проверки X на количество запросов M - получаем Z секунд времени, потраченного на НЕНУЖНУЮ мне функциональность. Похоже, слово "кэширование" ты не слыхал. Жаль. На самом деле это - такая технология, которая выступает в роли хирурга, который может помочь плохому танцору... ------------ Best regards, Jimmy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 16:52 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2Tygra Предметную область или всё-же инструмент? Инструмент - да, подтверждаю, знаю не досконально, не боюсь в этом признаться. Если не сложно - дайте ссылку на ветку обсуждения table vars. 2SergSuper Поставьте order by по вкусу - всё равно не вставляет, да и судя по описаниям не должна. 2Jimmy Слышал, есть такая штука, кэширование... И что? То, что кто-то может эффективно выполнять ненужную мне работу - меня не радует ни капельки. 2All Давайте определимся. Есть транзакции на уровне блока операторов. Есть транзакции (неявные) на уровне одного оператора (insert,update,delete) Меня в некоторых случаях устраивает "транзакция" на уровне страницы, а не оператора. В чем неправильность моего желания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 19:46 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
И тем не менее, повторюсь. Все эти рассуждения о "ненужной работе" и о "замедлении" абсолютно не подкреплены какими-либо цифрами. Все на уровне размахивания руками. Вот если бы была конкретная задача, а сервер бы с ней не справлялся, тогда бы стоило искать пути повышения производительности. А ведь путей этих множество, и главные среди них: 1) оптимизация запросов 2) оптимизация структур хранения (возможно, денормализация) 3) upgrade железа 4) смена сервера БД. Где у вас хотя бы минимальное обоснование того, что все эти пути исчерпаны? Где обоснование того, что отказ от логгирования и проверок безопасности даст нужный прирост производительности? Так о чем речь-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2004, 07:49 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Вот, панимаешь, почему нельзя отключить у автомобиля тормоза? Ведь мешают, заразы. Разогнался вроде - а тут бац, нажал на педаль и вся скорость псу под хвост. Вот если бы можно было отключать тормоза совсем - вот хорошо то было бы. Не, без тормозов только мне можно - я то ездить умею - обычно по двору ездить зачем тормоза? А пусть остальные с тормозами ездят - но за этим должен пьяный механик следить. Но если он не уследит - это не мои проблемы, мне бы побыстрее, разогнался и никто не остановит -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2004, 11:38 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2Mir Первый и второй путь я никогда не отвергал и не отвергаю. Всемерно этим пользуюсь и т.д. 3-й путь - дорого, однако. По крайней мере заказчик считает, что дорого. В чем-то я с ним согласен. 4-й путь - не для меня. Можут быть, увы, может быть - к счастью. Но! Где-то тут потерялся путь - правильная настройка сервера. И очень досадно, что нету в MS SQL такой настроечки, которая есть у других. Хотя, если положить руку на сердце, мне вполне бы подошла опция типа Код: plaintext 1. где n - количество строк, после которого надо делать commit а то приходится делать вот так Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2004, 14:48 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
lockyа то приходится делать вот так Здорово. А то я через while begin select top во временную таблицу; delete end делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2004, 15:34 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
Для обсуждения влияния журналирования временных таблиц на производительность, неплохо бы (для начала) на реализацию прикладной части посмотреть - а то в 90% случаев, чем яростнее человек борется с архитектурой СУБД, тем больший ужас вызывает просмотр его "творений"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 22:06 |
|
||
|
О ненужных возможностях
|
|||
|---|---|---|---|
|
#18+
2A. Chepack Не, что касаемо модичикации данных и всё такое - там у меня претензий ни к скорости ни к журналированию ни практически ни к чему претензий нет. А вот к отчетности... Ну, есть. Ну, могу порешать (и решаю). Но хочется то большего и меньшими усилиями :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 11:24 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1554142]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 403ms |

| 0 / 0 |
