Cтраница 3
Администраторы и разработчики баз данных SQL-сервера часто совершают одну ошибку. Вместо того чтобы хранить все данные в одной большой базе данных, они распределяют информацию среди нескольких небольших. Почему это вызывает трудности. Напомним, что одним из способов, с помощью которых SQL-сервер ускоряет обработку информации, является снижение операций дискового ввода / вывода путем использования буферов памяти. В таких буферах содержатся данные, индексы и хранимые процедуры. Когда процессу требуется получить доступ к одному из этих ресурсов, он просматривает вначале соответствующую область кэша памяти. Когда система загружена, часто можно видеть, что очень высокий процент запросов обслуживается в памяти, а не с использованием диска. Это ускоряет доступ к информации, так как число дорогостоящих обращений к диску уменьшается. [31]
Не пытайтесь производить модификации, которые сразу же, а не постепенно устранят неисправность в функционировании системы, так как впоследствии может оказаться, что вернуться к первоначальной конфигурации уже невозможно. При этом не требуется модифицировать тексты программ или базы данных; нужно лишь ненадолго остановить SQL-сервер, чтобы новое значение, описывающее количество буферов, начало действовать. Когда количество буферов памяти увеличено, необходимо проанализировать, к какому результату привело внесенное изменение. Старайтесь проводить свои оценки строго на научной основе, но не забывайте интересоваться мнением пользователей. [32]
Когда говорится о поведении кода переменной длины, массу информации можно получить из знания среднего числа бит. В кодовом присвоении переменной длины некоторые символы будут иметь длины кодов, превосходящие среднюю длину, в то время как некоторые будут иметь длину кода, меньшую средней. Может случиться, что на кодер доставлена длинная последовательность символов с длинными кодовыми словами. Кратковременная скорость передачи битов, требуемая для передачи этих символов, будет превышать среднюю скорость передачи битов кода. Если канал ожидает данные со средней скоростью передачи, локальный избыток информации должен заноситься в буфер памяти. К тому же на кодер могут быть доставлены длинные модели символов с короткими кодовыми словами. Кратковременная скорость передачи битов, требуемая для передачи этих символов, станет меньше средней скорости кода. В этом случае канал будет ожидать биты, которых не должно быть. По этой причине для сглаживания локальных статистических вариаций, связанных с входным алфавитом, требуется буферизация данных. [33]
Также применяются цветовые палитры с 16 битами на пиксел. В этом случае цветовая палитра содержит 65 536 элементов, что позволяет одновременно использовать до 65 536 цветов. Такая схема позволяет достичь гораздо более качественной цветопередачи, однако размер требуемой видеопамяти при этом методе сокращается всего лишь на одну треть по сравнению с 24-разрядными пикселами. К тому же сама цветовая палитра размером 65 536 элементов по 3 байт ( 192 Кбайт) тоже должна где-то храниться. Если она хранится аппаратно ( чтобы избежать затрат времени на дополнительные обращения к оперативной памяти), хранение такой палитры требует существенно больше аппаратных буферов памяти, чем в случае 8-разрядной цветовой палитры. [34]
Также применяются цветовые палитры с 16 битами на пиксел. В этом случае цветовая палитра содержит 65 536 элементов, что позволяет одновременно использовать до 65 536 цветов. Такая схема позволяет достичь гораздо более качественной цветопередачи, однако размер требуемой видеопамяти при этом методе сокращается всего лишь на одну треть по сравнению с 24-разрядными пикселами. К тому же сама цветовая палитра размером 65 536 элементов по 3 байт ( 192 Кбайт) тоже должна где-то храниться. Если она хранится аппаратно ( чтобы избежать затрат времени на дополнительные обращения к оперативной памяти), хранение такой палитры требует существенно больше аппаратных буферов Памяти, чем в случае 8-разрядной цветовой палитры. [35]
Главный недостаток декодирования по алгоритму Витерби заключается в том, что в то время, как вероятность появления ошибки экспоненциально убывает с ростом длины кодового ограничения, число кодовых состояний, а значит сложность декодера, экспоненциально растет с увеличением длины кодового ограничения. Последовательное декодирование асимптотически достигает той же вероятности появления ошибки, что и декодирование по принципу максимального правдоподобия, но без поиска всех возможных состояний. Фактически при последовательном декодировании число перебираемых состояний существенно независимо от длины кодового ограничения, и это позволяет использовать очень большие ( К 41) длины кодового ограничения. Это является важным фактором при обеспечении таких низких вероятностей появления ошибок. Основным недостатком последовательного декодирования является то, что количество перебираемых метрик состояний является случайной величиной. При низком SNR приходится перебирать больше гипотез, чем при высоком SNR. Из-за такой изменчивости вычислительной нагрузки, поступившие последовательности необходимо сохранять в буфере памяти. [36]
Действительно, теперь вместо жужжащей и шумящей корзины, превосходящей по размерам и стоимости ПЭВМ, для того чтобы реализовать практически все стандартные функции, необходимые для автоматизации, достаточно вставить в ПЭВМ маленькую плату стандартного размера и использовать прилагаемое к ней стандартное математическое обеспечение. Естественно, что при этом несколько теряется универсальность системы. Однако сейчас выпускаются модульные платы с посадочными позициями, допускающими переконфигурацию системы. Кроме того, выпускается множество различных плат автоматизации, ориентированных на различные специфические применения. В странах СЭВ и в СССР для ПЭВМ ЕС 1840 начат выпуск комплекта таких устройств, среди которых можно назвать модули ЕВ48, СМ607 и др. Технические характеристики рассматриваемых устройств весьма различны. В специализированных платах для высокоскоростного ввода аналоговой информации используются АЦП, имеющие буфер памяти, с частотой преобразования до нескольких мегагерц. В устройствах общего назначения обычно предусмотрены возможности для решения основных задач автоматизации. Рассмотрим типичный состав некоторой средней платы для автоматизации и управления процессами в комплекте ПЭВМ. [37]
Выход заключается в следующем: диск делится на небольшие блоки длиной от 128 до 1024 байт. Мы будем писать слово запись с маленькой буквы, когда речь идет о блоке данных, и с большой буквы, когда имеются в виду записи базы данных. Последние мы будем рассматривать в следующей главе. Когда файл уничтожается или становится короче, часть блоков на диске высвобождается и может быть использована для других файлов, которые, наоборот, пополняются. Операционная система ведет свой собственный указатель, в котором хранится информация о номерах блоков -, используемых каждым файлом, и в какой последовательности они следуют. Когда ЭВМ выполняет по программе команду чтения файла, операционная система автоматически передает записи с диска в оперативную память в правильной последовательности. Если программой предусматривается чтение только части файла, она передает операционной системе номер записи и имя файла. Если в данный момент работает программное обеспечение базы данных то оно определит номер соответствующей записи по своим индексам ( см. гл. Операционная система затем передает запись в буфер памяти ЭВМ, где запись станет доступной для программы управления базой данных. Буфер представляет собой часть ОЗУ, которую программы используют так же, как мы используем доски объявлений, помещая на них сообщения для других лиц. Вообще говоря, чем больше размеры буфера, тем лучше работает система, поскольку уменьшается количество доступов к физическим блокам, необходимое для выполнения той или иной операции. Однако, выделяя больше ячеек памяти под буферы, мы уменьшаем память, предназначенную для хранения программ. Поэтому разработчикам баз данных приходится находить компромиссные решения. [38]