Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сколько памяти занимает SQLEXPRESS [D7, MSSQL]


yurikon ©   (2011-07-19 18:17:00) 

Добрый день!

Юзаю базу SQLEXPRESS, на диске она занимает 10Мб. Процесс sqlserv.exe занимает в памяти 800Мб. Это нормальная ситуация?

С уважением, Юрий.


sniknik   (2011-07-20 22:11:00) [1]

> тут лучше
http://imageshack.us/


SQLEXPRESS   (2011-07-20 22:05:00) [2]

совсем система испортилась, захочешь помотреть - непосмотришь
тут лучше
http://zalil.ru/31447039


SQLEXPRESS   (2011-07-20 21:55:00) [3]

Вы меня пугаете..
а это что тогда?
http://ifolder.ru/24798239


Anatoly Podgoretsky   (2011-07-20 21:25:00) [4]

> SQLEXPRESS  (20.07.2011 20:41:16)  [16]

Прибить это удалить лог файл.

Размер лога сверху ничем не ограничен. В настройках ничего подобного твоему
утверждению "не давать становится trans_log более size", поскольку это
равносильно смерти базы. Я на всякий случай проверил все настройки - нет
этого. И быть этого не может.


SQLEXPRESS   (2011-07-20 20:41:00) [5]


> 1. Это лог не прибивает, а только сжимает, прибитие лога
> - это уничтожение
> базы
> 2. Имеем в итоге испорченую базу. Ты хоть понимаешь для
> чего нужен лог, как
> это работает

1. согласен, не так сказал.
в случае чрезмерного раздутия (700 метров, например и более)
ужать до 1 - это считай, что прибить
2. да, конечно.
я про возможность ограничить и тут


> Сверху лог никак не ограничен, столько сколько
> нужно для работы.

да ладно, не нужно ему слишком много.
Вернее, он хапает пока может. А потом это все грузом лежит.


>  Есть таблица 20 строк и 20 полей, они апдейтятся клиентом
> несколько раз в секунду.

тут вообще не о чем говорить. Все в минимум можно ставить.
Если это не киношки :), что вряд ли, т.к. несколько раз в секунду апдейтятся


Anatoly Podgoretsky   (2011-07-20 19:16:00) [6]

> yurikon  (20.07.2011 18:09:13)  [13]

2М это начальный размер. Сверху лог никак не ограничен, столько сколько
нужно для работы.


Anatoly Podgoretsky   (2011-07-20 19:13:00) [7]

> SQLEXPRESS  (20.07.2011 17:01:12)  [12]

1. Это лог не прибивает, а только сжимает, прибитие лога - это уничтожение
базы
2. Имеем в итоге испорченую базу. Ты хоть понимаешь для чего нужен лог, как
это работает


yurikon   (2011-07-20 18:09:00) [8]

Приветствую!

2 SQLEXPRESS
Лог не растет, если вы имеете ввиду файл "имя базы_log". В настройках базы там стоит 2М, и такой размер и есть. Если Вы про другой файл - подскажите, где его глянуть.

Провел ряд экспериментов. Получил следующие результаты. Есть таблица 20 строк и 20 полей, они апдейтятся клиентом несколько раз в секунду. В таблице я сначала поставил триггер на апдейт и первичный ключ. Среднее время рефреша такой таблицы 4.5 миллисек. Потом убрал триггер - стало 3 миллисек. Потом убил индекс - вышло совсем отлично - 1.7 миллисек.

Так что оставил триггеры только для тех таблиц, которые редко обновляются, чтобы не рефрешить их попусту.

С уважением.


SQLEXPRESS   (2011-07-20 17:01:00) [9]


> Ни то ни другое невозможно.

да ладно?
1. DBCC SHRINKFILE(trans_log, newsize)
2. в настройках БД, не давать становится trans_log более size


Anatoly Podgoretsky   (2011-07-20 16:39:00) [10]


> SQLEXPRESS   (20.07.11 16:31) [10]

> Так что с логом там у Вас?
> много апдейтов -> растет лог отката. Надо его периодически
> прибивать или не давать расти изначально.

Ни то ни другое невозможно.


SQLEXPRESS   (2011-07-20 16:31:00) [11]

смотря какие поля апдейтятся, смотря какая структура, смотря какие индексы уже есть и смотря какие из них можно выкинуть.
>> индексы они для селектов полезны, а для апдейтов вредны

Так что с логом там у Вас?
много апдейтов -> растет лог отката. Надо его периодически прибивать или не давать расти изначально.


sniknik   (2011-07-20 15:35:00) [12]

> кроме индексирования таблицы?
индексирование/индексы то как раз нужно убрать если -
> идет много UPDATEов

индексы они для селектов полезны, а для апдейтов вредны (кроме кластерного со значением на возрастание, этому пофиг)... нужно подбирать компромисс.


Anatoly Podgoretsky   (2011-07-20 13:47:00) [13]

> yurikon  (20.07.2011 12:56:07)  [7]

Убрать ограничение


yurikon   (2011-07-20 12:56:00) [14]

Добрый день!

Поставил ограничение = 512 Мб, теперь тормозит где-то на уровне 545 Мб и дальше лезит по чуть-чуть.

Сенк за помощь!

Еще вопрос по производительности сервера. Как ее самую можно увеличить, если идет много UPDATEов, кроме индексирования таблицы?

с уважением.


Loginov Dmitry   (2011-07-19 23:11:00) [15]


> занимает 10Мб. Процесс sqlserv.exe занимает в памяти 800Мб.
>  Это нормальная ситуация?


Динамическое распределение памяти. По мне, это равно как собака на сене - и самому не нужно и других помучаю (другие-то приложения подтормаживают от таких потребностей sql-сервера, порой весьма ощутимо; а если в приложении разработчик по неосторожности реализовал проверку доступной памяти, то такое "неудачное" приложение может отказаться работать параллельно с sql-сервером от MS). Однако, если использовать MS SQLServer по назначению, на серверах с мощным железом, с большими базами (>>>> 10МБ), то такой подход очень даже оправдан.


знайка   (2011-07-19 23:01:00) [16]


> Max server memory = 2Гб
Ну так чего беспокоитесь.


SQLEXPRESS   (2011-07-19 22:41:00) [17]

Тип восстановления надо посмотреть в св-вах БД.
Полный нафиг не нужен обычно. Там есть полный, частичный и простой. Простой вполне обычно хватает
Лог, который.

Шринкнуть ТемпДБ еще можно


> Max server memory = 2Гб.  То есть можно его просто ограничить?
>  Скажется ли это ограничение на быстродействии базы?

можно.
А скажется ли.. Надо смотреть в каждом конкретном случае.
Проще эксперимент поставить да посмотреть, будет или нет. Будет - можно назад вернуть.


yurikon   (2011-07-19 20:26:00) [18]

При запуске процесс занимает около 70М. Дальше к базе подключаются два клиента. Один апдейтит таблицу 3-4 раза в секунду, другой ее переоткрывает. Процесс пухнет на 200-300 кб в секунду. Такое ощущение, что он все эти апдейты где то хранит, а вместе с ними еще какую-то инфу, так как на такой объем данных не приходит в базу.

Max server memory = 2Гб.  То есть можно его просто ограничить? Скажется ли это ограничение на быстродействии базы?

С уважением.


SQLEXPRESS   (2011-07-19 19:47:00) [19]


> Занимает в памяти 800Мб

в виртуальной - нормально

оцените хар-ки

sp_configure 'show advanced options',0
RECONFIGURE
go
sp_configure
go
sp_configure 'show advanced options',1
RECONFIGURE
go
sp_configure

обратить внимание на параметр
max server memory (MB)
если мин сделать = мах. Будет фиксировано. Если бд маленькие - стоит сделать БД х 3, но не менее 200-300 мб


Anatoly Podgoretsky   (2011-07-19 18:49:00) [20]

Нормальная, если у тебя 1 гб


Наверх

Титульная страница Поиск, карта сайта Написать письмо