|
|
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Может ли Оракл автоматически отдавать неиспользуемую память назад операционной системе, если система испытывает недостаток памяти ? Или этим заправляет только администратор ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 12:44 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Может. При завершении сеанса серверный процесс убивается, и занимаемая им память отдается в ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 15:17 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
я имел ввиду такую ситуацию : предположим, под кэш отдано 128 метров. Сервер использует всю эту память, но сама операционка испытывает недостаток пямяти и постоянно свопиться, что влияет в том числе и на процесс Оракла. Может-ли Оракл почувствовать это и автоматически поделиться памятью ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 15:34 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerSя имел ввиду такую ситуацию : предположим, под кэш отдано 128 метров. Сервер использует всю эту память, но сама операционка испытывает недостаток пямяти и постоянно свопиться, что влияет в том числе и на процесс Оракла. Может-ли Оракл почувствовать это и автоматически поделиться памятью ?Это надо переводить так: "может ли Oracle почувствовать, что администратор - разгильдяй и автоматически поделиться памятью?" Ну и как ты думаешь? Какой ответ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 16:17 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
>>Ну и как ты думаешь? Какой ответ? Получается, ответ выглядит так : распределением занимается только админ. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 16:33 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Почитай по управлению памятью в винде на уровне страниц. Оракл, как ПРИЛОЖЕНИЕ, не лочит все свои буфера в памяти, и отдает, если они больше нужны другим. Дурной привычки прочесывать без причины ВСЮ свою память, выталкивая ее в RAM, за ним не наблюдал. Вполне нормально живет и работает, отожрав на 25 сессий (3 активных) около 1G SGA+PGA (по своей статиcтике), и при этом занимая в RAM около 150M. Просто ненужная память сбросилась в своп, и будет лежать там, пока не затребуется сессией. Другое дело, если в настройках прописано лоченье SGA - тогда не отдаст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 18:53 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
RAVEN Оракл, как ПРИЛОЖЕНИЕ, не лочит все свои буфера в памяти, и отдает, если они больше нужны другим. Каким образом он определяет, что память нужна кому-то другому ? Вопрос в догонку: каким образом Оракл берет себе память из общесистемного пула ? Когда возникает потребность в дополнительных, скажем, 5 МВ, просто запрашивает их у системы ? А когда возвращает ? RAVEN Просто ненужная память сбросилась в своп Какой смысл выталкивать данные в свопфайл, если есть доступная оперативка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 19:56 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
в 10ке есть автоматический тюнинг, задаешь максимальный размер SGA а он уже сам берет сколько надо в заданых пределах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 19:59 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
>>а он уже сам берет сколько надо в заданых пределах А когда отдает назад ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 20:09 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS>>а он уже сам берет сколько надо в заданых пределах А когда отдает назад ? там все просто. при старте оракл жестко забирает память под буфера. их изменить можно командой alter system, автотюнинг это просто джоб который смотрит статистику и иногда выполняет alter system http://www.oracle.com/technology/pub/articles/10gdba/week17_10gdba.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 20:12 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
там в статье вроде про деление памяти внутри адресного пространства Оракл между его компонентами. А меня интересовало именно взаимодействие сервера с операционной системой. Т.е. задан верхний предел, в этом пределе сервер запрашивает себе память из общесистемного пула ? А если ему не весь обьем нужен, берет меньше ? И все-таки, как он возращает память системе ? Положим, предел = 600 МВ. Через некоторое время серверу достаточно только 300 метров, остальные 300 метров возвращаются системе, или нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 20:26 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
да оставит опереционке "лишние", у меня например сейчас 700 метров занято, хотя ораклу отдал 2.5 гига. но это имхо плохо, теперь жаба может отобрать у него память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 22:46 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
хорошо, но как все-таки насчет моего первоначального вопроса ? Предположим, есть гигабайт оперативки. Серверу задаем верхний предел в 700 метров. Сервер их все потребляет под свой внутренний кэш. Однако операционная система вдруг захотела, к примеру, 350 метров. Вопрос в том, отдаст-ли сервер 50 своих кровных мегобайт системе, что-бы не допустить ее свопинга ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 10:46 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
нет конечно, взять или забрать решает ось, а не прикладуха. если ось решит то она у оракла ничего не спросит и свалит его в своп. а дальше уже идут навроты конкретной и к субд отношения имеет слабое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:26 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Серверу задаем верхний предел в 700 метров. Сервер их все потребляет под свой внутренний кэш. У Оракла есть структуры памяти SGA, и PGA. Под каждую пишется предел. SGA - куда входит буферный кэш, в частности, является фиксированной. Поэтому речи об ее освобождении не идет. А PGA - другое дело. Там память используется серверными процессами, обслуживающими запросы. Там есть разные варианты. На 9 - ке можно задать верхний передел для всех сессий, но можно и для каждой. Кроме того, сессия может работать либо с выделенным сервером, либо с разделяемым. В случае выделенного по мере появления сессий берется память и освобождается по их завершении. В случае разделяекмого - указывается скока может быть серверных процессов на один диспечер. Там я не в курсе, всегда ли запущены все серверные. Но думаю память динамически выделяется и освобождается по мере работы. Есть еще стр-ра UGA. Она в случае выделенного входит в PGA, а разделяемого в SGA. Т.е. SGA - фиксированная и не должна освобождаться, как я надеюсь. А PGA - динамическая. У Оракла есть средства отслеживания здоровья БД за определенные периоды, на основе которых, можно понять завышено или наоборот занижено выделение памяти для его структур памяти. Если под SGA длжно выделяться 400, а PGA - 300 из 700 Вами указанных, то я расчитываю, что 400 никогда не будет отдано. Потому что мне надо точно знать скока выполняются запросы у заказчика. А если там будет 200 вместо 400 в какой-то момент, а в какой-то 400, то это уже слишком. Хватит и того, что процессор кто-то левый может занять. А серверны процесс, если недостаточно памяти - пусть лучше даст отказ на запрос, чем перейдет в своп. Пусть наращивают ресурсы. Из одной овчины семь шапок не сошешь. Вообще сервер БД должен заниматься только БД у серьезного заказчика. Иначе доиграемся. Он будет свои телеги писать бесконечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 13:24 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
более менее понятно. Вот оно - отличие тесно интегрированной с системой СУБД (это камень в огород кроссплатформенности ;). MSSQL распоряжается памятью учитывая не только свои интересы, а очень динамично. Ему нет надобности указывать, типа жри не больше гигобайта. В Оракле, вы выделили память, а только потом пытаетесь определить, насколько удачно это получилось. SQL-Server запрашивает память по мере необходимости, специальный механизм, lazywriter, регулярно обходит кэш и сбрасывает грязные страницы на диск, выкидывает из кэша ненужные планы запросов и т.д. Освободившаяся память отправляется в freelist, т.е. в дальнейшем может быть использована повторно. Но, если сервер видит, что операционка испытывает недостаток памяти, освободившаяся память идет не в freelist, а в общесистемный пул. А интересно, в Оракл, если стоит гигобайт оперативной памяти, можно ему разрешить использовать, например, 950 метров ? И если он их все сожрет, как будет чувствовать себя система ? Конечно, грамотный админ сумеет выделить память так, что-бы никого не обидить, только вот зачем ему заниматься той работой, которая может выполняться автоматически ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:31 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
>более менее понятно. Вот оно - отличие тесно интегрированной с системой СУБД (это камень в огород кроссплатформенности ;). Када я отвечал, я знал, что это поиск камней в огород кроссплатформенности. А точнее в огород открытых технологий, поскольку переносимость БД на разные платформы важный признак таковых технолгий. Но я не уверен, что это реальный камень в огород кросплатформенности, поскольку вряд ли такое управление памятью обусловленно кросплатфоменностью. Нет никаких трудностей на С выделять и освобождать память на многих платформах. И если надо, то, возможно, появится возможность выбирать фиксированная SGA или нет. Я мог бы подкинуть Вам более подходящие аргументы такого рода в огород кросплатформенности. Но дело в том, кросплатформенность перевесит тысячи таких аргументов. Потому в литре эти аргументы практически не используются. Чаще они появляются как придумки в разных обоснованиях заинтересованных продвигать MS SQL решения фирм. >Конечно, грамотный админ сумеет выделить память так, что-бы никого не обидить, только вот зачем ему заниматься той работой, которая может выполняться автоматически ? Ну при установке БД Оракл сам выбирает исходя из размеров оперативки. И в простых случаях - это прокатывает. Многие и не в курсах про Оракловые структуры памяти, используя его по несколько лет. И не тока разработчики, но и админы. А если не простые случаи, то тут уже не до других прог в оперативке - это уже какой-то критичный по ресурсам проект. Какие-нить сотни гигабайт с требованиями получать из них инфу в неск сек. Кроме того, выбор оптимальной памяти не всегда есть задача чисто алгоритмическая. Нужно собирать статистику. Причем статистика статистике рознь. Например, если была закачка данных это одно, а если штатная работа другое. Плюс изменяющийся объем БД. И на всю SGA никто не будет тратить всю оперативку, где тада будет PGA? А она динамическая. Базовая и пиковая - нормальный подход для использования ресурсов не тока в инфотехнологиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 20:01 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
vadiminfo Но дело в том, кросплатформенность перевесит тысячи таких аргументов Я по-моему, уже говорил, что кроссплатформенность - это плюс в основном чисто теоретический. Все равно Оракл стоит в большинстве случаев под юниксами. А система, ориентированная на одну платформу, берет все ее плюсы vadiminfo Ну при установке БД Оракл сам выбирает исходя из размеров оперативки. Установка и реальная работа - две разные вещи. так что прокатывать будет и самом деле только в простых случаях. vadiminfo А если не простые случаи, то тут уже не до других прог в оперативке - Дык другие проги в оперативке могут быть системными сервисами. Зажав их, обломаете и Оракл то-же, он ведь не в вакууме работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 21:51 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Я по-моему, уже говорил, что кроссплатформенность - это плюс в основном чисто теоретический. Все равно Оракл стоит в большинстве случаев под юниксами. А система, ориентированная на одну платформу, берет все ее плюсы Вы то может и говорили, но что это меняет? Есть общепризнанные вещи в инфотехнологиях. Неужели Вы верите, что кого-то в этом можно сегодня убедить? Время Эсэмэсок прошло. Кросплатформенность - это плюс практический и существенный. Оракл крутится на самых навороченных платформах. Вот у нас зарубежный заказчик потребовал, чтобы сервак крутился под OpenVMS. У нас все разработали практически на других платформах и у заказчика это работает. Эта система у нас крутится у разных заказчиков на 4-х платформах, включая Винды. Ориентированность на одну платформу не гарантирует, как мы видим, взятия своего. Она, например, сама по себе никак не поможет блокировочнику ровняться с версионником. Уверен, что будь MS SQL - кросплатформенным, Вы не искали доводов в пользу платформозависимых систем. StalkerS Установка и реальная работа - две разные вещи. так что прокатывать будет и самом деле только в простых случаях. Не в самых простых, а простых в смысле отсутствия исключительных требований к ресурсам. Как правило, считается, что для большинства случаев, если специально коряво не настроили, настройками можно выиграть в общем не более 10% производительности. Основной выигрыш все равно дает оптимизация логики приложения. А там где нужны особые настройки, там уже врядли автоматизации хватит. Тут без интеллектуальных усилий не обойтись. Т.е. только алгоритмический способ, скорее всего, не поможет, а у нас же не системы искусственного интеллекта, чтобы обучаться. StalkerS Дык другие проги в оперативке могут быть системными сервисами. Зажав их, обломаете и Оракл то-же, он ведь не в вакууме работает Системные сервисы - это не то, что должно быть ресурсоемким. По крайней мере, на серваке БД. Тогда такая ОС вообще для других целей предназначена, и родным СУБД тоже не поможет. Она им будет тока писать, про недопустимое обращение к памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 22:56 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Мне это все больше напоминает спор приверженцев Windows и Linux. Одни говорят: "Зачем думать? Все сделает компьютер", другие возражают: "Домохозяйкам думать и впрямь не надо, а мы думать обязаны." ------------------------------------------------------- Автор благодарит алфавит за любезно предоставленные ему буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 11:18 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
vadiminfo Кросплатформенность - это плюс практический и существенный Я уже обьяснял свою позицию : Плюсы от кросплатформенности : можно не думать, куда ее поставят Плюсы от некросплатформенности : более тесная интеграция с системой. Каждый выбирает свой плюс ;) vadiminfo Ориентированность на одну платформу не гарантирует, как мы видим, взятия своего. Она, например, сама по себе никак не поможет блокировочнику ровняться с версионником. Может и не гарантирует, зато много чего дает. А блокировочнику на версионника равняться надо только в определенных ситуациях, в других случаях, уже версионнику приходится равняться на блокировочник. vadiminfo А там где нужны особые настройки, там уже врядли автоматизации хватит. Тут без интеллектуальных усилий не обойтись. Т.е. только алгоритмический способ, скорее всего, не поможет Не рассказывайте сказки. Если следовать вашим словам, то нам надо надевать шкуры, брать топоры и идти охотиться на мамонтов. Никакой техники, все вручную и надежно. vadiminfo Системные сервисы - это не то, что должно быть ресурсоемким. Не так-уж и мало они потребляют. И априори заявлять, что оставив системе, положим, 50 МВ, и все будет в ажуре, довольно самонадеяно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 22:05 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerSПлюсы от некросплатформенности : более тесная интеграция с системой.Я не знаю как работает MS SQL Server, можно узнать как он интегрирован с MS Windows -- например какие функциональные возможности OS он использует, которые не использует Oracle на той же платформе? Каков выигрыш от этого? В чём он выражается? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 22:08 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Плюсы от некросплатформенности : более тесная интеграция с системой. Ну тада моя позиция: такой плюс, с одной стороны, говорит о недостатках ОС, так ее задача обеспечить всем приложениям максимальные возможности в силу ее основного назначения, с другой, - о сильной зависимости модулей системы СУБД от ОС. Это противоречит принципам модульной декомпозиции системы в целом. Теперь что-то поменять в ОС (пропатчить), можно ждать сюрпризов от СУБД? StalkerS А блокировочнику на версионника равняться надо только в определенных ситуациях, в других случаях, уже версионнику приходится равняться на блокировочник. Думаю, что эти определенные ситуации, когда блокировочнику на версионника равняться надо, составляют практически все возможные ситуации, и другие ситуации носят скорее искусственный характер. И MS SQL рано или поздно полностью перейдет в версионники, если к тому времени не появится каких-то более эффективных моделей транзакций. StalkerS Не рассказывайте сказки. Если следовать вашим словам, то нам надо надевать шкуры, брать топоры и идти охотиться на мамонтов. Никакой техники, все вручную и надежно. Вы в курсе, что есть задачи искусственного интеллекта? Это те что плохо поддаются алгоритмическуму решению. Для них разрабатывают всякие нейронные сети и проч. А наши компы - практически компы фон Неймана. Потому все еще нуждуются в естественном интеллекте при управлении. К примеру, оптимизатор может не знать каких-то особенностей распределения данных по значениям, знание о которых может играть роль для выбора наиболее оптимального плана запроса. Ведь системе чтобы это "узнать" нужно не просто просканировать таблы, но и проанализировать значения (например мат статистику какую-то хотя бы провести). А разработчик может знать это еще до появления самих данных в БД. А уж как Винды настраиваются, я в курсе - "Приложение обратилось к недопусимой область памяти" - все свободны. Более того, нас учили в институте (сказки рассказывали), что любая прога обязана иметь ошибки. (на самом деле теория надежности исходит из обязательности отказов). Т.е. исходить надо из этого. И потому возможности ручнуго управления сложной системы (а СУБД считаются сложными) на многие случаи - всегда плюс. StalkerS Не так-уж и мало они потребляют. И априори заявлять, что оставив системе, положим, 50 МВ, и все будет в ажуре, довольно самонадеяно. Хорошо, оставлю больше. Память не миллионы баксов стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 00:46 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
авторПолучается, ответ выглядит так : распределением занимается только админ. А кто у вас вообще занимается настройкой сервера? Из ваших постов я делаю вывод, что админ - абсолютно лишняя штатная единица. В моей организации - работа БД должна быть непрерывной , мне абсолютно неинтересны задачи на сервере, которые могут негативно сказаться на производительности БД , я не считаю, что БД поддерживающая бизнес процессы, должна делиться с какими-бы то нибыло приложениями своими ресурсами, для таких приложения есть отдельные сервера , кроме кривых рук администратора я вообще невижу ситуаций, когда система вдруг потребует от Oracle освободить память или выкинуть Oracle в своп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 10:09 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир Бегун StalkerSПлюсы от некросплатформенности : более тесная интеграция с системой.Я не знаю как работает MS SQL Server, можно узнать как он интегрирован с MS Windows -- например какие функциональные возможности OS он использует, которые не использует Oracle на той же платформе? Каков выигрыш от этого? В чём он выражается? Спасибо.Не нужно искать конкретные имена функций ядра (документированные или нет, неважно), моё любопытство удовлетворят хотя бы основные функциональные элементы, которые использует MS SQL Server и не использует Oracle на Windows. В чём она эта "интеграция"? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 18:48 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир Бегун Я не знаю как работает MS SQL Server, можно узнать как он интегрирован с MS Windows -- например какие функциональные возможности OS он использует, К примеру, тема этого топика. SQL-Server и операционная система, общаясь напрямую, вырабатывают разумную стратегию использования оперативной памяти. Далее, в SQl-Server есть такое понятие как Windows Authentication. Это означает, что пользователи имеют возможность подключаться к серверу без ввода дополнительных логинов и паролей к серверу, а на основе логинов операционной системы. Т.е. мне достаточно пройти аутентификацию при входе в Windows, и я автоматически получаю возможность подключения к SQL-Server (для этого, разумеется, надо сообщить серверу, что такой-то Windows-логин имеет такое право). Такая возможность позволяет не только упростить взаимодействие с сервером конечных пользователей (не надо 2 раза вводить логин с паролем), но и упростить администрирование. К примеру, достаточно указать серверу, что например Windows-группа "Бухгалтеры" имеет право на подключение к серверу и задать ей соответствующие привелегии в базе.ФСЕ !Теперь этой группой можно управлять (добавлять/удалять/временно отключать логины, управлять настройками типа длины пароля, срока его действия и прочей ботвы) напрямую в оснастке Windows, не внося никаких изменений на самом сервере. Разумеется, если по каким-то причинам вы не желаете пользоваться такой возможностью, (например бухгалтеры вам мало денег насчитывают), то можно работать в mixed mode, т.е. заставит их напрямую указывать логин с паролем. Интеграция с системным монитором. SQL-Server интегрирует туда свои счетчики, что позволяет контролировать его не только из встроенного Profiler'a, но и напрямую из системного монитора. Это удобно для комплексного анализа работы системы в целом. Анологично, можно заставить SQL-Server Agent реагировать на оповещения операционной системы (рассылкой e-mail, запуском какой-нибудь хранимой процедуры и пр.) Ну и дальше в том-же духе. vadiminfo Думаю, что эти определенные ситуации, когда блокировочнику на версионника равняться надо, составляют практически все возможные ситуации, и другие ситуации носят скорее искусственный характер мы с вами это уже обсуждали, повторяться ей-богу неохота vadiminfo К примеру, оптимизатор может не знать каких-то особенностей распределения данных по значениям, знание о которых может играть роль для выбора наиболее оптимального плана запроса именно поэтому планы запросов можно править руками. Хотя мне кажется, что недалек тот день, когда эту возможность уберут за ненадобностью. vadiminfo А уж как Винды настраиваются, я в курсе - "Приложение обратилось к недопусимой область памяти" - все свободны. Издеваетесь что-ли ? А сообщение segmentation fault вам ничего не говорит ? vadiminfo Более того, нас учили в институте (сказки рассказывали), что любая прога обязана иметь ошибки. ... И потому возможности ручнуго управления сложной системы (а СУБД считаются сложными) на многие случаи - всегда плюс. а вас не учили в институте, что любой человек тоже обязан иметь ошибки ? Еще раз повторю : настройка управления памятью как раз есть, вот только пользоваться ей не нужно, за исключением случаев, когда нужна оптимизация под условия, о которых сервер не может знать. При штатной работе сервер все распределит сам, и получше, чем вы руками. Калина Из ваших постов я делаю вывод, что админ - абсолютно лишняя штатная единица Где у меня такое написано ? Калина я не считаю, что БД поддерживающая бизнес процессы, должна делиться с какими-бы то нибыло приложениями своими ресурсами какие бизнес приложения ? я говорил про память, необходимую для фунциклирования системы и системных сервисов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 18:57 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS[quot Владимир Бегун] Я не знаю как работает MS SQL Server, можно узнать как он интегрирован с MS Windows -- например какие функциональные возможности OS он использует, StalkerSК примеру, тема этого топика. SQL-Server и операционная система, общаясь напрямую, вырабатывают разумную стратегию использования оперативной памяти. Я не увидел довода в пользу MS SQL Server связки Windows. StalkerSДалее, в SQl-Server есть такое понятие как Windows Authentication. Это означает, что пользователи имеют возможность подключаться к серверу без ввода дополнительных логинов и паролей к серверу, а на основе логинов операционной системы. Подобное существует и в Oracle. StalkerSно и упростить администрирование. К примеру, достаточно указать серверу, что например Windows-группа "Бухгалтеры" имеет право на подключение к серверу и задать ей соответствующие привелегии в базе. Это иногда удобно. StalkerSИнтеграция с системным монитором. SQL-Server интегрирует туда свои счетчики, что позволяет контролировать его не только из встроенного Profiler'a, но и напрямую из системного монитора. Это удобно для комплексного анализа работы системы в целом. Согласен, такая штука есть и для Oracle. StalkerSАнологично, можно заставить SQL-Server Agent реагировать на оповещения операционной системы (рассылкой e-mail, запуском какой-нибудь хранимой процедуры и пр.) В Oracle есть возможности делать тоже самое используя другие средства. StalkerSНу и дальше в том-же духе. "Дух" понятен. Разговор превращается в беспредметный. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 19:03 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
60634.1 -- To be used as a guide for setting up basic O/S Authentication on Windows NT. 122515.1 -- Setup O/S Authentication Using Oracle Administration Assistant Про мониторинг лень искать (я не работаю с Windows поэтому могу быть не up to date с этими вещами). Здесь есть кто-то, кто понимает работу ядра MS SQL Server и может рассказать о концептуальных приемуществах использования MS SQL Server на Windows платформе -- в ключе "интергации" database (kernel) - OS? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 19:21 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир БегунЗдесь есть кто-то, кто понимает работу ядра MS SQL Server и может рассказать о концептуальных приемуществах использования MS SQL Server на Windows платформе -- в ключе "интергации" database (kernel) - OS?Ну... Эта... Как его... Оно всё интегрировано... Одна же корпорация... Перформанс... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 19:37 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир БегунПро мониторинг лень искать (я не работаю с Windows поэтому могу быть не up to date с этими вещами). Помогу немного :) Note:166598.1 Using NT Performance Monitor with Oracle 8i ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 20:07 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
автор Ну... Эта... Как его... Оно всё интегрировано... Одна же корпорация... Перформанс... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 20:26 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир Бегун Я не увидел довода в пользу MS SQL Server связки Windows. ... Это иногда удобно OK Мне кажется, или те вещи, которые есть в Оракл, признаются нужными и полезными, а отсутствующие - автоматически ненужными, а аргументы неубедительными ? Найти различия в работе ядра задача нетривиальная. Но они есть, иначе как обьяснить отставание 10g от mssql на виндовой платформе. Это видно по тестам tpc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 22:01 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerSМне кажется, или те вещи, которые есть в Оракл, признаются нужными и полезными, а отсутствующие - автоматически ненужными, а аргументы неубедительными ? Довода не понял. Я спросил конкретную вещь. В ответ получил спискок свойств предмета обсуждения. Обратным аргументом был списко свойств (похожих) другого предмета обсуждения. Множества в той или иной мере совпали. Да в MS SQL Server лучше сделана "интергация" инструментов работы с MS Windows. Но я спрашивал о другом. StalkerSНайти различия в работе ядра задача нетривиальная. Довод принят. Поэтому я и спрашивал у тех кто знает. Чтобы не выслушивать голословных утверждений об "интеграции". StalkerSНо они есть, иначе как обьяснить отставание 10g от mssql на виндовой платформе. Это видно по тестам tpc. Это высказывание напоминает следущий диалог: http://www.exler.ru/films/05-07-2000.htm " - Меня жена с тещей пытались засадить в психушку. - За что? - За принципы. - Какие? - Вон видишь суслика? - Нет. - И я не вижу. Но он ЕСТЬ! " Давай так, если тебе есть что сказать по "интеграции" database kernel - OS -- я с удовольствием выслушаю, я готов узнать что-то новое и интересное. Если нет... не нужно из пустого в порожнее перелевать твои собственные "знания о предмете". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 22:29 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Взято из xls файлов (http://www.tpc.org/information/results_spreadsheet.asp) Рассматривались только одинаковые (либо близкие) "железки" и OS: TPC-CCompanySystemSpec. RevisiontpmC$/tpmCTotal Sys. CostCurrencyDatabase Software Operating System TP MonitorServer CPU Type# Server CPU'sCluster# Front EndsDate SubmittedAvailability DateUnisys Unisys ES7000 Aries 420 Enterprise Server 5.1309036.534.491384981US $ Microsoft SQL Server 2000 Enterprise Edition Microsoft Windows Server 2003 Datacenter Edition 64-bit Microsoft COM+ Intel Itanium2 1.5GHz 16N81/20/20041/30/2004Unisys Unisys ES7000 Aries 420 Enterprise Server 5.22914134.981448706US $ Oracle Database 10g Enterprise Edition Microsoft Windows Server 2003 Datacenter Edition 64-bit Microsoft COM+ Intel Itanium2 1.5GHz 16N85/11/200410/25/2004 TPC-HCompanySystemSpec. RevisionScale FactorQphHPrice Perf.($/QphH)Total Sys. CostCurrencyDatabase SoftwareOperating SystemCPU Type# CPU'sClusterDate SubmittedAvailability DateUnisys Unisys ES7000 Aries 420 Enterprise Server 2.110009853.367.93669239US $ Oracle Database 10g Enterprise Edition Microsoft Windows Server 2003 Datacenter Edition 64-bit Intel Itanium2 1500MHz 16N8/13/200411/30/2004Unisys Unisys ES7000 Aries 420 Enterprise Server 210005199.1119.12619308US $ Microsoft SQL Server 2000 Enterprise Ed. 64-bit Microsoft Windows Server 2003 Datacenter Edition 64-bit Intel Itanium2 1.5GHz 16N10/15/200310/15/2003 Мне слабо видиться возможность судить о тесной интеграции MS SQL Server с MS Windows против Oracle на MS Windows базируясь только на результатах этих тестов -- http://www.tpc.org/tpcc/faq.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 23:56 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS мы с вами это уже обсуждали, повторяться ей-богу неохота Тем более, мы тогда ничего не нашли особого в пользу блокировочника, не найдем и при повторе. StalkerS А сообщение segmentation fault вам ничего не говорит ? Возможно, это лишний довод в пользу того, что ручное управление - это не то, от чего стоит отказываться раз и на всегда в наше время. StalkerS Еще раз повторю : настройка управления памятью как раз есть, вот только пользоваться ей не нужно, за исключением случаев, когда нужна оптимизация под условия, о которых сервер не может знать. При штатной работе сервер все распределит сам, и получше, чем вы руками. При штатной работе вроде тоже нет строгой зависимости от увеличения памяти в выигрыше при использовании алгоритмов кеширования. Действительно, она может искать в большом объеме то, чего заведомо нет. Пусть лучше в меньшем ищет. Для выбора оптимальных размеров нужно собирать статистику во времени. Т.е. не тока сервер, но и компьютерная наука может еще не все знать, иначе бы давно сделали самый совершенный сервер. А что касается операций, у которых такая зависимость просматривается, то там имеет место захват и освобождеение памяти (PGA). Да и многие парни настройками вообще и памяти, в частности, не замарачиваются. Т.е. явная необходимость заниматься настройкой памяти не частое явление в жизни ораклиста. StalkerS а вас не учили в институте, что любой человек тоже обязан иметь ошибки ? Так это одно и тоже - проги то челы пишут. StalkerS При штатной работе сервер все распределит сам, и получше, чем вы руками. Смотря что за алгоритмы. И тем более хто писал их, ошибаясь. Нет строгой зависмости. Т.е. может случиться, что увеличение некоторых структур памяти на 50-100Мб и больше может дать и проигрыш в некоторых случаях, а выигрыш даст, наприме, тока увеличение на 1 Гб. Т.е. алгоритмы автоматизирующие могут оказаться сложными и временемкими, и требовать для своих вычислений статистики собранной за некоторое время. А в это время могла быть закачка данных - редкая опреация, которая однако всю статистику увела в другую сторону. Иными словами Вы должны представить все алгоритмы, например, при кешировании и доказать, что есть успешные алгоритмы управления памятью, учитвающие все это. И выигрыш и все нужно в цифрах привести. Иначе утверждение в Вашем посту слишком сильное, хотя и льстящее успехам в области алгоритмов. А так в общем случае, тоже повторю, что редко сталкивался со случаями када парни после того как настроили мастером все параметры по умолчанию, а то и выбрали чего для пробы (типа смутно догадываясь о чем их мастер спрашивает) при установке Оракла БД, и чтобы потом надо было настраивать память руками. Они часто просто не в курсах про структуры памяти. И думаю, Оракл бы еще посоревновался в производительности, не смотря на это. И, надеюсь, Вы не будете говорить, что при установке MS SQL Server ничего непонятного непосвященным не надо выбирать, и он автоматически потом исправит, если выбрали не то что надо. В литре не встречал ничего про недостатки Оракла при управлении памятью. Скажите честно. Это Вы специально придумали такую проблему, чтобы разыграть? Сбить с толку? Чтобы потом смешнее было? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 00:59 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир Бегун Мне слабо видиться возможность судить о тесной интеграции MS SQL Server с MS Windows против Oracle на MS Windows базируясь только на результатах какие-то интересные у вас доводы. Привели 2 разных теста и сделали вывод. В свете выяснения кто как работает на виндовой платформе, как раз более логично сравнивать работу систем на одинаковых тестах. В TPC-C есть сравнение mssql и oracle на одинаковых платформах, но с разными операционными системами. В случае "Unisys ES7000 Aries 420 Enterprise Server" Оракл стоит на Windows, и отстает по тестам от mssql на 6%, в случае "HP Integrity Superdome", оракл уже на unix'e, и опережает mssql на 22%. Можно-ли на основе этого сделать однозначный вывод о причинах ? Вряд-ли. Тут я с вами согласен. Зато можно сделать предположение с достаточно высокой степенью вероятности, что одна из причин этого - в платформе. А то странно получается, взаимодействие сервера с системой на примере работы с памятью вам кажется неубедительным, одинаковые тесты на разных осях тоже вам ни о чем не говорят, зато вы приводите различные тесты и делаете выводы. ладно, развели мы тут флейм не по теме. vadiminfo Тем более, мы тогда ничего не нашли особого в пользу блокировочника, не найдем и при повторе. То, что вы пропускали мои ответы мимо ушей, не значит, что мы нашли какие-то доводы ;) Хорошо, можно попробовать еще раз. Только на этот раз давайте так: дайте мне четкий и однозначный ответ на следующий вопрос - Согласны ли вы, что изменяющая данные транзакция создающая версии изменяемых данных, будет работать медленнее, чем аналогичная, но не создающая никаких версий ? (напомню, речь идет о Yukon). Ответ просьба дать в виде "Согласен" или "Не согласен" По поводу алгоритмов и пр. Я, честно говоря, не совсем понимаю, что именно вы мне доказываете. То, что алгоритмы не могут быть совершенными ? Я с этим не спорил. То, что иногда надо руками указывать серверу, как себя вести, если сервер не может знать того, что знаете вы ? Все верно. То, что алгоритмы это зло, и их надо избегать ? Не соглашусь, впрочем и вы наверняка с этим спорить не будете. Поэтому для меня странно, что вы так яростно спорите по поводу автоматической дележки памяти. Ну не нравиться, так установите все руками, и поработайте некоторое время. Больше чем убежден, что быстро убедитесь в необходимости отдать брозды правления обратно серверу. Ведь я не спорю с тем, что сервер не всегда делает все правильно. Но почему вы не хотите принять, что в подавляющем большинстве случаев именно серверу виднее, и более того, на какие-то форс-мажорные обстоятельства он отреагирует, мягко говоря, побыстрее вас. vadiminfo и требовать для своих вычислений статистики собранной за некоторое время. А в это время могла быть закачка данных - редкая опреация, которая однако всю статистику увела в другую сторону. ;) SQL-Server сам умеет обновлять статистику. Причем делает это тоже по не сильно простым алгоритмам. Такая опция включена по умолчанию, и ее тоже, как и в случае с памятью, трогать не рекомендуется. Хотя все равно можно обновить вручную. При изменении значений в таблицах, сервер определяет, как сильно такие изменения влияют на статистику, и принимает соответствующие решения. vadiminfo Скажите честно. Это Вы специально придумали такую проблему, чтобы разыграть? Сбить с толку? Чтобы потом смешнее было? Я всего-лишь разбираясь с принципами работы сервера с памятью, решил поинтересоваться, как с этим обстоят дела в Оракл, и задать один вопрос. Можете мне поверить, что обсуждать тесты tpc и машины Фон Неймана я не собирался. Но не сдержанный йа ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 18:03 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Я всего-лишь разбираясь с принципами работы сервера с памятью, решил поинтересоваться, как с этим обстоят дела в Оракл, и задать один вопрос. Можете мне поверить, что обсуждать тесты tpc и машины Фон Неймана я не собирался. Но не сдержанный йа ;) А что вас собственно удивляет? Да, вы спросили: "Может?" - вам ответили: "Не может." Вы недоумеваете: "Чё за отстой???", вам отвечают: "Никакого отстоя, на практике это не нужно." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 18:36 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Мои 5 копеек... Управление памятью надо изучать по книжкам об архитектуре Windows (в Unix - ПОЧТИ также, для просвещения рекомендую узнать, что такое Portable Operating System Interface (POSIX®) ). Кросплатформенностью можно "меряться" в сегменте Enterprise, куда MSSQL слегка не дотягивает. Опять же, если у предприятия IT-система уровня Enterprise, но одна OS (копроративный стандарт) то тут кросплатформенность не применима. Остальных случаях это, ето МАРКЕТИНГОВОЕ, а не ТЕХНОЛОГИЧЕСКОЕ преимужество. Если выпустить DB под ZX-Spectrum, XENIX и Atari - будете ли Вы указывать ее кросплатформенность как преимущество? А вот на Мухозасиденских островах, где 3 компа, и на каждом одна из этих операционок - это ОГРОМНОЕ преимущество продукта. Особенно, если это офшор с многоярдовым оборотом (в день). Так что кросплатформенность применима только к рынку и маркетингу, но не к технологиям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 19:27 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Владимир Бегун Мне слабо видиться возможность судить о тесной интеграции MS SQL Server с MS Windows против Oracle на MS Windows базируясь только на результатах какие-то интересные у вас доводы. Привели 2 разных теста и сделали вывод. Я повторю свой оригинальный вопрос: "Я не знаю как работает MS SQL Server, можно узнать как он интегрирован с MS Windows -- например какие функциональные возможности OS он использует, которые не использует Oracle на той же платформе?" Я привёл результаты тестов в рамках того вопроса, который я задал. Я не вижу никаких проблем сравнивать два продукта в одинаковых условиях работы. StalkerSВ свете выяснения кто как работает на виндовой платформе, как раз более логично сравнивать работу систем на одинаковых тестах. В TPC-C есть сравнение mssql и oracle на одинаковых платформах, но с разными операционными системами. Мне неинтересно это делать. Я задал один вопрос -- ты развёл демагогию. StalkerSВ случае "Unisys ES7000 Aries 420 Enterprise Server" Оракл стоит на Windows, и отстает по тестам от mssql на 6%, в случае "HP Integrity Superdome", оракл уже на unix'e, и опережает mssql на 22%. Прочитай TPC FAQ, я не зря дал ссылку, прочитай и перечитай всё то что ты написал. StalkerSМожно-ли на основе этого сделать однозначный вывод о причинах ? Вряд-ли. Тут я с вами согласен. Зато можно сделать предположение с достаточно высокой степенью вероятности, что одна из причин этого - в платформе. Ты не сказал ничего нового. Я спросил об этом пару дней назад, подчернув, что мне не интересна демагогия и предположения -- ты занимаешься mssql -- объясни мне какая такая интеграция делает (не всегда, разумеется) mssql сервер быстрее? StalkerSА то странно получается, взаимодействие сервера с системой на примере работы с памятью вам кажется неубедительным, одинаковые тесты на разных осях тоже вам ни о чем не говорят, зато вы приводите различные тесты и делаете выводы. Я не делаю "жестких" выводов о недостатках или приемуществах, я выясняю то что мне интересно, я задаю вопросы. Пример с памятью... в каких ситуациях ядро RDBMS должно отдавать память OS? По какой причине? Почему на сервере базы данных кроме RDBMS крутиться что-то ресурсоёмкое? Это ресурсоёмкое run-away server side process? Почему он не ограничен в потреблении ресурсов? Кто-то считал чего стоит такое поведение сервера если более одного процесса начинают "memory race"? Почему это выгодно? Насколько это адаптивно? Где об этом можно, кто делал такой анализ? Вопросов больше чем ответов. Не нужно на них отвечать здесь, я не уверен что ты знаешь ответы -- а читать о твоих догадках мне не интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 19:52 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир Бегун Мне неинтересно это делать ... а читать о твоих догадках мне не интересно А зачем вы вообще тогда участвуете в дискуссии, если вам ничего не интересно ? Владимир Бегун объясни мне какая такая интеграция делает (не всегда, разумеется) mssql сервер быстрее? Про память пример вас не убеждает, полагаю, не убедит и сотня других причин, которые посидев с месяц в инете, можно накопать. Владимир Бегун Почему на сервере базы данных кроме RDBMS крутиться что-то ресурсоёмкое? хотя-бы потому, что на компьютере может работать ДВА (и более) sql-server'a. Владимир Бегун Кто-то считал чего стоит такое поведение сервера если более одного процесса начинают "memory race"? Почему это выгодно? Насколько это адаптивно? принимается во внимание ряд факторов, типа Life Expectancy страниц. В частности, это напрямую влияет на обьем памяти, который сервер оставляет операционке. И почитать об этом и многом другом можно у Кален Дилейни. Только зачем ? Вас это не в чем не убедит. that's all. I'm not going to talk to person who doesn't respect other people. Sorry for possible sintax mistakes, I'm not cool american guy like some people here. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 20:46 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerSthat's al... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 20:52 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
ISBN: 0735609985Part II Architectural Overview Chapter 3 SQL Server Architecture Managing Memory One of the major goals of SQL Server 2000 was to scale easily from a laptop installation on Windows 98 to an SMP server running on Windows 2000 DataCenter Server. This ability to scale requires a robust policy for managing memory. By default, SQL Server 2000 adjusts its use of system memory to balance the needs of other applications running on the machine and the needs of its own internal components. These other applications can include other instances of SQL Server running on the same machine. When determining the optimal amount of memory to dynamically allocate to SQL Server, the memory manager strives to keep at least 4 MB of memory completely free and available for the operating system, but it might try to keep more available. The amount of free space reserved for the operating system is partially determined by the average life expectancy of a page in cache. The memory manager determines a Life Expectancy value that indicates how many seconds, on average, a page stays in cache if it isn't referenced at all. Performance Monitor has a counter that allows you to view the current Life Expectancy value. That value is of course only an estimate, and it's based on the speed at which the lazywriter checks for referenced pages and the total amount of memory available. (I'll talk about the lazywriter later in this section.) If the average Life Expectancy of a page is small, the memory manager tries to keep the reserve memory at about 4 MB to increase the amount of memory available to SQL Server. If the average Life Expectancy increases, the space reserved for the operating system increases to up to 10 MB and the total memory for SQL Server decreases. All instances of SQL Server on a single machine tend to work toward the same reserve value and a similar Life Expectancy value. As an alternative to dynamically computing the total amount of memory, you can configure SQL Server to use a fixed amount of memory. Whether memory allocation is fixed or dynamically adjusted, the total memory space for each instance is considered one unified cache and is managed as a collection of various pools with their own policies and purposes. Memory can be requested by and granted to any of several internal components. источник тот же SQL Server Configuration Settings .... min server memory and max server memory By default, SQL Server automatically adjusts the total amount of the memory resources it will use. However, you can use the min server memory and max server memory configuration options to take manual control. The default setting for min server memory is 0 (MB), and the default setting for max server memory is 2147483647. If you use the sp_configure stored procedure to change both of these options to the same value, you basically take full control and tell SQL Server to use a fixed memory size. This mimics the memory configuration behavior prior to SQL Server 7. You can also use SQL Server Enterprise Manager to set a minimum and maximum value for memory, using the Memory tab of the SQL Server Properties dialog box (shown in Figure 17-2). To bring up the dialog box, right-click on the name of your server and then choose Properties. TPC Benchmark™ C Full Disclosure Report/Unisys ES7000 Aries 420 Enterprise Server (16P) using Microsoft SQL Server 2000 Enterprise Edition (64-bit) on Microsoft Windows Server 2003, Datacenter Edition for 64-bit Itanium-based Systems nameminimummaximumconfig_valuerun_valuemax server memory (MB)4 2147483647126000126000min server memory (MB)0 214748364700 TPC Benchmark™ H Full Disclosure Report/Unisys ES7000 Aries 420 Enterprise Server using Microsoft SQL Server 2000 Enterprise Edition 64-bit on Microsoft Windows SQL Server 2000 Enterprise Edition 64-bit Parameter Settings nameminimummaximumconfig_valuerun_valuemax server memory (MB)4 21474836476200062000min server memory (MB)021474836476000060000 TPC-H is an ad-hoc, decision support benchmark. Summary The TPC Benchmark™H (TPC-H) is a decision support benchmark. It consists of a suite of business oriented ad-hoc queries and concurrent data modifications. The queries and the data populating the database have been chosen to have broad industry-wide relevance. This benchmark illustrates decision support systems that examine large volumes of data, execute queries with a high degree of complexity, and give answers to critical business questions. The performance metric reported by TPC-H is called the TPC-H Composite Query-per-Hour Performance Metric (QphH@Size), and reflects multiple aspects of the capability of the system to process queries. These aspects include the selected database size against which the queries are executed, the query processing power when queries are submitted by a single stream, and the query throughput when queries are submitted by multiple concurrent users. The TPC-H Price/Performance metric is expressed as $/QphH@Size. Владимир Бегунмоё любопытство удовлетворят хотя бы основные функциональные элементы, которые использует MS SQL Server и не использует Oracle на Windows. В чём она эта "интеграция" Каков выигрыш от этого? В чём он выражается? Отвечаю сам себе: - интергация -- активная работа с OS. Моё подозрение -- подход может быть неээфективным при пиковых нагрузках - выигрыш - неопределён, зависит от использования прочих приложений - выражается в to scale easily from a laptop installation on Windows 98 to an SMP server running on Windows 2000 DataCenter Server. Я думаю что "светлая цель" иметь на сервере другие приложения, которые имеют требования к потреблению памяти, заставляющие ядро базы отдавать её обратно может вызвать справедливаое недоуменее. Думаю не только у меня одного. ISBN: 0735609985./The SQL Server Kernel and Interaction with the Operating System The SQL Server kernel is responsible for interacting with the operating system. It's a bit of a simplification to suggest that SQL Server has one module for all operating system calls, but for ease of understanding, you can think of it in this way. All requests to operating system services are made via the Win32 API and C run-time libraries. When SQL Server runs on Windows NT/2000, it runs entirely in the Win32 protected subsystem. Absolutely no calls are made in Windows NT/2000 Privileged Mode; the calls are made in User Mode. This means that SQL Server cannot crash the entire system, it cannot crash another process running in User Mode, and other such processes cannot crash SQL Server. SQL Server has no device driver-level calls, nor does it use any undocumented calls to the operating system. If the entire system crashes (giving you the so-called "Blue Screen of Death") and SQL Server happens to have been running there, one thing is certain: SQL Server did not crash the system. Such a crash must be the result of faulty or incompatible hardware, a buggy device driver operating in Privileged Mode, or a critical bug in the Windows NT/2000 operating system code (which is doubtful). Competitors have occasionally, and falsely, claimed that SQL Server must have special, secret hooks into the operating system. Such claims are likely the result of SQL Server's astonishing level of performance. Yes, it is tightly integrated with the operating systems on which it runs. But this integration is accomplished via completely public interfaces—there are no secret "hooks" into the operating system. Yes, the product is optimized for Windows NT/2000. That's SQL Server's primary platform. But other products could also achieve this level of optimization and integration if they made it a chief design goal. Instead, they tend to abstract away the differences between operating systems. Of course, there's nothing wrong with that. If Microsoft had to make sure that SQL Server could run on 44 different operating systems, it might also take a lowest-common-denominator approach to engineering. To do anything else would be almost impossible. So although such an approach is quite rational, it is in direct conflict with the goal of fully exploiting all services of a specific operating system. Since SQL Server runs exclusively on Microsoft operating systems, it intentionally uses every service in the smartest way possible. A key design goal of both SQL Server and Windows NT is scalability. The same binary executable files that run on notebook computer systems run on symmetric multiprocessor super servers with loads of processors. Windows NT/2000 is an ideal platform for a database server because it provides a fully protected, secure, 32-bit environment. The foundations of a great database server platform are preemptive scheduling, virtual paged memory management, symmetric multiprocessing, and asynchronous I/O. The operating system provides these, and SQL Server uses them fully. The SQL Server engine runs as a single process on Windows NT/2000. Within that process are multiple threads of execution. The operating system schedules each thread to the next processor available to run one. Да, речь везде и у всех о всё том же scalability... делимся ресурсами активно общаясь с OS -- это тоже решение, лучше оно или хуже можно выяснить только действительно запуская несколько MS SQL Server instances на одной машине меняя workload можно ещё и в игрушки поиграть... Я не понимаю почему нельзя было просто дать все эти ссылки в начале разговора, но разводить демагогию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 23:25 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_sa_40vt.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 23:35 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
http://blogs.msdn.com/slavao/archive/category/9005.aspx -- очень хорошая подборка. External Memory pressure: RM and Buffer Pool From SQLOS perspective Buffer Pool is a single page allocator - extensively used memory manager. External memory pressure is signaled by Windows. RM wakes up and broadcasts corresponding notification to clerks. Upon receiving the notification BP recalculates its target commit, amount of physical memory BP is allowed to consume. Keep in mind that target commit can't be lower than configuration parameter specified through sp_configure min server memory and can't be higher of max server memory. If new target commit is lower than currently committed buffers, BP starts shrinking until external physical memory pressure disappears. During this process BP tries to decommit or in case of AWE free physical memory back to OS. Remember that in SQL2000 BP didn't react to physical memory pressure when running in AWE mode. Вот интересное замечание: http://www.windowsitpro.com/Articles/Print.cfm?ArticleID=37890 Enabling AWE has no effect if your server has less than 4GB of RAM. By default, Windows is limited to 4GB of physical memory. However, by leveraging Physical Address Extensions (PAE), Win2K AS can support 8GB of memory, and Windows Datacenter Server can support 64GB. You invoke PAE by including the /PAE switch in the boot.ini file. However, each 32-bit process usually has access to only 2GB of address space. To let processes allocate more physical memory than can be addressed by the 2GB of address space, Microsoft created AWE. These extensions permit the allocation and use of up to the amount of physical memory the OS supports. Most people use AWE in conjunction with the /PAE switch to let SQL Server take advantage of physical memory greater than 4GB. Using AWE without /PAE lets SQL Server access as much as 4GB of physical memory. With AWE enabled, SQL Server by default allocates almost all memory during startup , leaving 256MB or less free. This memory is locked and can't be paged out. Consuming all available memory can prevent other applications or SQL Server instances from starting. I strongly recommend that you use the max server memory option with AWE enabled to ensure that some memory exists for other SQL Server applications or instances. Т.е. деталек не меньше, чем при настройке работы Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 00:52 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS То, что вы пропускали мои ответы мимо ушей, не значит, что мы нашли какие-то доводы ;) Я их не пропускал. Просто они не показались мне достаточными, для обоснования. И я высказывал сомнения. StalkerS Согласны ли вы, что изменяющая данные транзакция создающая версии изменяемых данных, будет работать медленнее, чем аналогичная, но не создающая никаких версий ? (напомню, речь идет о Yukon). Почему тада в Юникон? Берите выше - в Клиппере. Там модель транзакций еще проще. А серьезно, то смотрю тесты. Ведь и у блокировочника транзакции не просто записывают данные. Ведь мы БД создаем не тока для того, чтобы занять персонал изменениями данных, чтобы они, например, не лазили по инету от безделья. Вот смотрю толстую книгу: подсистемы обработки транзакций (для блокировочников как я понимаю): Диспечер транзакций, Планировщик (Диспечер блокировок), Диспечер восстановлений, Диспечер буфферов - все высокоуровневые модули. У Оракла нет неоходимости в таком Диспечере блокировок, он инфу о блокировках записывает в блоки данных. Неужели Вы думаете, что в Оракле дураки сидят, и ничего не придумали для компенсации, если в чем уступают? Вы хотите, чтобы я отвечал Согласен, Не согласен про что-то отвлеченное? Про какие-то предположения о работе механизмов транзакций. А потом сказать, что это были не предрположения? К сожалению, меня то можно перехитрить, но этого не достаточно чтобы выяснить реальное положение. Зато в плане моделей транзакций версионник выигрывает однозначно. И это более существенно. Что толку от скорости, даже если она и есть (что не факт), если она просто ждет читающего не известо скока и ничего изменить не может. или меняет, а читающий читает грязные данные? Ведь одна из архиважных функций СУБД - управление параллельным доступом. А Вы по сути пытались сказать, что иногда параллельный доступ не нужен (пишушие транзакции тоже читают) и тада блокировочник лучше. Но тада может СУБД там не нужно? StalkerS Я, честно говоря, не совсем понимаю, что именно вы мне доказываете. То, что алгоритмы не могут быть совершенными ? Нет. Что они могут быть: не известны, сложны для решения некоторых задач. И не доказать, потому что это известно с третьего курса. Это Вам я предлагал доказывать. Вот кеширование. Известно, что там имеет значение число попаданий. Если система показывает 99% - то увеличение объема, считается ничего не даст. Вот провели какую-то редкую операцию и показатель сбился на 45%. А потом стали обычно работать, т.е. так что показатель придет к 99%. Т.е. увеличение ничего не даст. Но пока еще в стаитстике прописано 45%. Система тада что должна делать? Увеличивать память? Или ждать? Скока ждать? Мы то знаем, что это ничего не даст. Более того она начитает с диска лишнего, что не понадобится более одного раза, но искать должна и нужное в большем объеме. Это простенький пример. Там наверняка есть и что-то еще. Там где известно, что увеличение дает выигрыш, там управляется как Вы сказали. И с кешем бы управлялось так бы, потому что в выделении и освобождении памяти нет никаких сложностей в большинстве ОС. Т.е. я Ваше якобы преимущество по управлению памяти у Эскуэля Сервера пока не могу без всяких сомнений принять. Они все еще не очевидны. Нужны дополнительные аргументы от Вас. Зато имеет значение сама структура памяти. Но я не говорю, что она у MS SQL хуже или проще. Потому все про эти структуры давно известно. А в литре я не видел сведений от таких преимуществах. А мы их с Вами найдем? Что-то пока не верится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 01:15 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Короче, товарищ StalkerS в своём крестовом походе во утверждение славы имени МS и БГ лично, а также в доказательство несомнненнейшего и полного преимущества SQL Server-а над Oracle опять сел в лужу. Мы сейчас как?.. Говорим о серьёзных производственных системах или о однопользовательских БД на лептопе с 64Мб памяти "для тестирования своей гениальности в сиквелписательстве"?.. "Блокировщик быстрее версионщика", "зачем нам выставлять параметры памяти - MS сама всё сделает", "n серверов и m процессов то и дело 'без всякого вмешательства человека' кроящие несчастные мегабайты памяти налево и направо и админ, занимающийся в основном смахиванием пыли с клавиатуры с умилением взирающий на эту картину" - это явные признаки такого подхода и предположу кощунство - МS SQL, наверное, действительно круче подходит для такого случая - представляете - он всегда резервирует системе 4МБ (!) памяти - а может даже и больше! (дядюшка Билл наставительно колышет пальцем и добавляет: "и всё это в полностью автоматическом режиме"). Ни одно из этих утверждений и фич не имеет ни малейшего смысла на производственном сервере БД. В системах оперативной отработки транзакций, блокировщики sucks. Точка. Во всех системах, с которыми я работаю сервер БД - это сервер БД, ничего более, ничего менее. Точка. Если мне не хватает памяти, я её не делю - я её покупаю. Точка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 13:31 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
+ 2,5 коп. Пока что, по-моему, некоторые вещи отсутствуют в Oracle, в отличии от MS SQL. Естественно для NT платформы. 1. У меня не получилось заставить работать без сбоев тестовый экземпляр Oracle с более высоким приоритетом процесса oracle.exe. (ноту читал, просто проверил ;-)) ) 2. Заставить работать Oracle на определённом процессоре. В MS не пробовал, но у них, по крайней мере, заявлено. Думаю это к ядру относится. Отсутствует у Oracle интеграция с MS AD. (впрочем с open_ldap тоже) (можно там помухлевать конечно, но я веду речь про "прямую" интеграцию) (читать про OID не надо отсылать, читал, знаю) Это уже не ядро, просто такой для нас недостаток присутствовал. --- В основном это неудобства. Не считаю это грандиозным недостатком. Больше ничего шибко хорошего для себя в MS SQL не нашёл. Возможно плохо искал (быстро наскучило, если честно, да и более чем второстепенный он у нас сервер БД). ЗЫ. Сильно сомневаюсь в отсутствии использования недокументированных фич OS. Очень сильно. ЗЫЫ. я понимаю что не про память, но по-моему, разговор давно уже ушёл в сторону. -- я Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 14:12 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Так что ORACLE_AFFINITY не работает, я не пробовал, но интересно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 15:16 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Ryaz... У меня не получилось... Заставить работать Oracle...То, что у кого-то что-то не получилось, вовсе не означает, что заявленная Oracle функциональность не работает. Note:219498.1 Oracle Architecture in Windows NT/2000/XP Fucker PS: Какое счастье, что я уже не DBA и мне не надо заниматься всякой фигней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 17:37 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
vadiminfo Вы хотите, чтобы я отвечал Согласен, Не согласен про что-то отвлеченное? ;) ладно, я сдаюсь, закрыли тему. Могу вам посоветовать почитать статью про версионность в Yukon (и перестаньте называть его Юникон, это Юкон !) на сайте microsoft, мне лень искать ссылку на статью, тем более сомневаюсь, что будете ее читать. Но если захотите, то без труда сами ее там разыщите. По возникшим вопросам всегда можете обращаться на форум по mssql, и можете не опасаться, что вам там начнут обзывать ламером и орать, что Оракл - полный сакс. А то мы с вами можем тут до бесконечности толочь воду в ступе, а у меня со временем сейчас полные вилы. Про память по вышеназванным причинам тоже предлагаю закруглиться. И тоже могу посоветовать почитать статью по распределению памяти, что-бы вам перестало казаться, что используются примитивные алгоритмы, проигрывающие ручной настройке. Может в Оракл и не дураки сидят, только вот microsoft тоже не идиотов набирает на работу. и вообще сегодня пятница, нужно было пиво пить, теперь вот придется завтра отдуваться сразу за два дня ладно, всех высказавших конструктивные мысли благодарю за потраченное время ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 20:31 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
да это же бот ! типа новая рекламная инициатива мс - бот немного туповат, неспособен прочесть ответ, но велеколепно генерирует всякую хрень на заданую тему :) (причем сильно напоминает скрепку из офиса) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 21:04 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
"Может в Оракл и не дураки сидят, только вот microsoft тоже не идиотов набирает на работу." Аргумент! Шедевр. Распечатал. Повесил в кубике. Дружбе крепнуть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 21:57 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Привет Мои многа копейков: 1. Надо же! Такую тему пропустил ))). Дурацкие курсы... Но мы с ребятами быстро нашли смежные области интересов...(+++) Однако 3-е суток вычеркнуто из жизни... (-). 2. Моя ЛЮБИМАЯ ТЕЩА как-то говорила (к сожалению, про меня ;-)) - "А-а-а-... мальчик из провинции. Слаще сорковки ничего не ел..." Теща дествительно любимая. За 20+ лет женатости мне проще найти общий язык с тещей, чем с женой. ГЫЫЫ 3. Тема давно превратилась в ПТ (см.п2). Но что отрадно - Володя Бегун впервЫе на моей памяти, в этом форуме не сорвался на размазывание и плющенье, а очень таки политкорректно отбился от аргументов супостатов ;-). И даже перетерпел повторения и тыканье мордом... +++++ 4. Маздай (ака все, что выходит от мелкософта) - отстой. ТЧК. (см.п.2). "Дети Мелкософта". Ничего кроме "Visual ???" не видели (см.п.2). Как работают компьютеры - не знают... Дети мелкософта... мля... Жаль их. Но и помогать им не хоцца. Преодолевшим барьер и заинтересовавшимся IT - респект и содействие. Сорри за пьяный базар. ... Но наболело. Всего -- Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C. Disclaimer: Opinions are of my own and not necessar(-il)y... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 00:01 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Ааз"сорковка"==="морковка";-) Всего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 00:03 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sql2k5snapshotisol.asp Version store is held in memory and TempDB. The dba must ensure that TempDB is optimized for increased i/o bandwidth based on the version store workload—TempDB database size must also be monitored (especially if the application has long running transactions), SQL Server has supported dba-friendly percentage and absolute database and log autogrow settings for many releases, but these are obviously constrained by the physical availability of disk space. This can lead to long version chains in SQL Server. The version store keeps a full copy of the data row that saves the expense of reconstructing the row when it is accessed by another transaction. The integrated SQL Server Agent event management and job scheduling sub-system can be programmed to react automatically to an out of physical space condition and corrective action (such as forcing rollback of any transaction contributing to version store space usage). Мне всегда было интересно, как в новой версии MS SQL Server a.k.a. Yukon обстоит дело с обработкой длинных типов данных, как то, VARCHAR, CLOB, NCLOB BLOB, LONG. Согласно тому что написано выше сервер с успехом может копировать длинные строки в version store и заниматься этим всю оставшуюся жизнь под сильной нагрузкой. Просто интересно. Если там не написано вранья то для: CREATE TABLE tbl(id NUMBER, dob DATE, firstname ..., lastname, ... photo BLOB, comments VARCHAR2(4000)); вот это: UPDATE table SET status = :status WHERE id = :id / Скопирует в version store мою фотогеничный физиономию, все комментарии и всю информацию из сегментов индексов для данной строки -- хотя я никого об этом не просил. Кто-то может подтвердить так ли это? Если это так, то на чём хочет выиграть MS? На том что в Oracle дорого сделать cr? Или на том что версионирование в Oracle заточено под производительность, а не под теорию (отсюда вся критика уровней изоляции транзакций)? Или в том что в Oracle алгоритм update многопроходный? Кто видел Yukon под живой hybrid нагрузкой с версионированием, скажем 500-1000 oltp сессий, 10-20 batch processing тех же данных, и пусть до 10 какой-нибудь online аналитики (данные теже)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 01:27 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Привет Мои 2 копейка: 1. Володя, ты таки оценил аудиторию этого форума как достойную для обсуждения. Класс. Вот этои есть твой качественный ответ. +++++. Сорри за мои оценки. Наплюй и забудь. Эти оценки - не для тебя! Ты свою цену сам знаешь ))). Ясень пень, я полез проверять))) 2. Возрождается (я надеюсь) дух relcom.comp.dbms.oracle и fido7.ru.rdbms.oracle. В новом месте... 3. Не ленивые - гляньте какие проблемы мы ТОГДА РЕШАЛИ (hint - фильруйте по макисальной дате 2001 год ;-))) Всего -- Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C. Disclaimer: Opinions are of my own and not necessar(-il)y... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 02:13 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Владимир БегунКто-то может подтвердить так ли это? Дочиталось до "Upgrade Issues" -- там есть объяснение для LOB. Для всех остальных типов данных, я так понимаю (нужно подтверждение), будет копироваться вся строка со всеми вытекающими. Вообщем-то, на мой взгляд, там ничего алгоритмически нового нет -- вроде бы найде-но наиболее эффективное решение для конкретной реализации ядра (но не знаю MS SQL достаточно хоррошо чтобы судить об этом). Можно только поблагодарить разработчиков ядра и сказать что хорошо продумали как эффективно сделать версионирование в той системе где его ждали очень много лет. С теоретической точки зрения (из того что я увидел в этом документе) MS SQL будет решать вопросы аномалий существующие в Oracle. Вопрос лишь в том, даст ли это существенный выигрыш на практике при той реализации, которая была выбрана? Кто ответит на оставшиеся вопросы -- что показывают тесты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 06:15 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
2 Владимир Бегун: Володя, спасибо, что по по моему пьяному бреду проезжать не стал... Всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 08:03 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
АазВолодя, ты таки оценил аудиторию этого форума как достойную для обсуждения. Класс. Присоединяюсь. Спасибо за грамотные, качественные посты. Качественно. Красиво. Сдержанно ;) Заодно хочу извиниться за свое неадекватное поведение и допущенную грубость. Володя знает за что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 10:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1973815]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 328ms |

| 0 / 0 |
