|
|
|
Управление памятью
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33014427&tid=1973815]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 384ms |

| 0 / 0 |
