Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
-8 / 2 / 1
Регистрация: 10.09.2019
Сообщений: 71

SQL спонтанно начинает нагружать базу чтением

26.09.2019, 07:33. Показов 1952. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйста. Я уже головой об стенку скоро расшибусь. SQL ведет себя не логично. У нас на заводе есть программы на компьютерах операторов и они собирают показания технологических показаний и отправляют на SQL сервер. Сначала запись происходит нормально сервер пишет данные от тех программ. Сервер работает только на запись базы данных, но почему то SQL через какое то время начинает нагружать базу чтением, если посмотреть в мониторинге ресурсов там сразу видно что база занята чтением и Длина очереди диска из за этого слишком высокая из за этого все тормозит. Подскажите пожалуйста в чем может быть проблема?
Миниатюры
SQL спонтанно начинает нагружать базу чтением  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2019, 07:33
Ответы с готовыми решениями:

Подскажите с чтением файла (с разделителями) и запись в базу ($)
Приветствую всех. Появилась задачка: сделать импорт из *.txt файла в базу Mssql 2008. Файл выглядит так: ...

Чтением записи из БД SQL Server
Здравствуйте, Не могу понять в чем проблема. Пытаюсь прочитать запись из таблицы Owner (ID, Name, Passport, INN, Phone), но на этапе...

SQL запрос с чтением из Edit
Возникла такая проблема. Считываю из Edit'а значение в переменную, переменную ставлю в запрос. При попытке воспроизвести поиск, выдается...

9
5961 / 4537 / 1094
Регистрация: 29.08.2013
Сообщений: 28,145
Записей в блоге: 3
26.09.2019, 16:12
поставь Sp_whoisactive
и посмотри кто и чем занимается в твоей БД
1
-8 / 2 / 1
Регистрация: 10.09.2019
Сообщений: 71
27.09.2019, 08:58  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
поставь Sp_whoisactive
и посмотри кто и чем занимается в твоей БД
ответ не информативен

Добавлено через 18 минут
Программы пишут данные в базу, почему нагрузка происходит на чтение. Кто нибудь может объяснить?

Добавлено через 5 минут
при выполнении функции sp_whoisactive нашел грузящий процесс нажал на него и вот что вижу:
delete from dbo.pk56min where datepart(month,dt)<(datepart(month,Getda te()))-3

что с этим делать?

Добавлено через 17 минут
Цитата Сообщение от naften Посмотреть сообщение
ответ не информативен

Добавлено через 18 минут
Программы пишут данные в базу, почему нагрузка происходит на чтение. Кто нибудь может объяснить?

Добавлено через 5 минут
при выполнении функции sp_whoisactive нашел грузящий процесс нажал на него и вот что вижу:
delete from dbo.pk56min where datepart(month,dt)<(datepart(month,Getda te()))-3

что с этим делать?
выполнил в запросе но ничего не изменилось
0
-8 / 2 / 1
Регистрация: 10.09.2019
Сообщений: 71
27.09.2019, 09:11  [ТС]
Вот тут почему чтение происходит, когда в таблица только запись идет
Миниатюры
SQL спонтанно начинает нагружать базу чтением  
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
27.09.2019, 09:32
Цитата Сообщение от naften Посмотреть сообщение
Вот тут почему чтение происходит, когда в таблица только запись идет
Я не работал с MS SQL, но вообще чтение может понадобиться даже в случае записи в таблицу. Например, когда в БД приходит запрос, то происходит его разбор. Т.е. СУБД должна определить, существует ли такая таблица, такие колонки в таблице, есть ли у пользователя права на запись. Для этого надо читать метаданные БД, а если данных нет в кэше, то идет чтение из файлов. Если на таблицу навешаны constraints (ограничения целостности), то для их соблюдения тоже может потребоваться чтение. Если на таблице есть триггера, то тут вообще масса вариантов.
1
-8 / 2 / 1
Регистрация: 10.09.2019
Сообщений: 71
27.09.2019, 09:59  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Я не работал с MS SQL, но вообще чтение может понадобиться даже в случае записи в таблицу. Например, когда в БД приходит запрос, то происходит его разбор. Т.е. СУБД должна определить, существует ли такая таблица, такие колонки в таблице, есть ли у пользователя права на запись. Для этого надо читать метаданные БД, а если данных нет в кэше, то идет чтение из файлов. Если на таблицу навешаны constraints (ограничения целостности), то для их соблюдения тоже может потребоваться чтение. Если на таблице есть триггера, то тут вообще масса вариантов.
как все упростить отключить проверки всякие ?

Добавлено через 24 секунды
База весит всего 40гб
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
27.09.2019, 10:20
Лучший ответ Сообщение было отмечено naften как решение

Решение

Цитата Сообщение от naften Посмотреть сообщение
как все упростить отключить проверки всякие
Я бы начал с триггеров (если они есть на таблице). Но можно ли их отключить/упростить - это зависит от бизнес-условий.
1
-8 / 2 / 1
Регистрация: 10.09.2019
Сообщений: 71
27.09.2019, 10:30  [ТС]
в папке Triggers есть один тригер, как узнать на что он повлияет если его удалю?

Добавлено через 7 минут
SQL
1
2
3
4
5
6
7
8
USE [std]
GO
/****** Object:  Trigger [dbo].[tg4delMinVAmonthly]    Script Date: 27.09.2019 12:28:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[tg4delMinVAmonthly] ON [dbo].[tg4min] AFTER INSERT AS DELETE FROM dbo.tg4min WHERE datepart(MONTH,dt)<(datepart(MONTH,Getdate()))-3
Вот этот триггер точно тормозит. я смотрел через Sp_whoisactive. Но что будет если я его удалю ?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
27.09.2019, 10:51
Цитата Сообщение от naften Посмотреть сообщение
Но что будет если я его удалю ?
Это могут сказать только разработчики приложения (если по этому приложению нет документации).
0
-8 / 2 / 1
Регистрация: 10.09.2019
Сообщений: 71
27.09.2019, 11:40  [ТС]
Вот часть исходного кода программы, этот триггер тут фигурирует:

Delphi
1
2
3
4
5
ADOQuery1.SQL.Text:='IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N''[dbo].['+FMain.Caption+''+'min'+']'') or id = OBJECT_ID(N''[dbo].[PK_'+FMain.Caption+''+'min'+'_1]'')) CREATE TABLE '+FMain.Caption+''+'min'+'([dt] [datetime] NOT NULL, [RecordID] [int] NOT NULL, [val] [float] NOT NULL, CONSTRAINT [PK_'+FMain.Caption+''+'min'+'_1] PRIMARY KEY CLUSTERED ([dt] ASC,[RecordID] ASC) WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]';
    ADOQuery2.SQL.Text:='IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N''[dbo].['+FMain.Caption+''+'hour'+']'') or id = OBJECT_ID(N''[dbo].[PK_'+FMain.Caption+''+'hour'+'_1]'')) CREATE TABLE '+FMain.Caption+''+'hour'+'([dt] [datetime] NOT NULL, [RecordID] [int] NOT NULL, [val] [float] NOT NULL, CONSTRAINT [PK_'+FMain.Caption+''+'hour'+'_1] PRIMARY KEY CLUSTERED ([dt] ASC,[RecordID] ASC) WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]';
    ADOQuery3.SQL.Text:='IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N''[dbo].['+FMain.Caption+''+'Attr'+']'')) CREATE TABLE"'+FMain.Caption+''+'Attr'+'"([RecordID] [int] NULL ,[5] [nvarchar](255) NULL,[11] [nvarchar](255) NULL,[12] [nvarchar](255) NULL,[13] [nvarchar](255) NULL,'+'[14] [nvarchar](255) NULL,[15] [nvarchar](255) NULL,[16] [nvarchar](255) NULL,[66] [nvarchar](255) NULL,[67] [nvarchar](255) NULL,[measure] [nvarchar](255) NULL) ON [PRIMARY]';
    ADOQuery6.SQL.Text:='IF NOT EXISTS (SELECT * from dbo.sysobjects WHERE id = OBJECT_ID(N''[dbo].['+FMain.Caption+'delMinVAmonthly]'')) begin execute(''CREATE TRIGGER ['+FMain.Caption+'delMinVAmonthly] ON [dbo].['+FMain.Caption+'min] AFTER INSERT AS delete from dbo.'+FMain.Caption+'min where datepart(month,dt)<(datepart(month,Getdate()))-'+MinArchDeep+''') end';
    ADOQuery7.SQL.Text:='IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N''[dbo].['+FMain.Caption+'delHourVAyearly]'')) begin execute(''CREATE TRIGGER ['+FMain.Caption+'delHourVAyearly] ON [dbo].['+FMain.Caption+'hour]AFTER INSERT AS delete from dbo.'+FMain.Caption+'hour where datepart(year,dt)<(datepart(year,Getdate()))-'+HourArchDeep+''') end';
Добавлено через 44 минуты
СПАСИБО!!!! Отключил я не нужный триггер, который крутил базу проверял старые значения что бы удалить их. А они как раз нужны как архив. В итоге отключил я его и все работает теперь без тормозов. База только записывается.

Добавлено через 28 секунд
Цитата Сообщение от Grossmeister Посмотреть сообщение
Я бы начал с триггеров (если они есть на таблице). Но можно ли их отключить/упростить - это зависит от бизнес-условий.
СПАСИБО!!!! Отключил я не нужный триггер, который крутил базу проверял старые значения что бы удалить их. А они как раз нужны как архив. В итоге отключил я его и все работает теперь без тормозов. База только записывается.

Добавлено через 1 минуту
Цитата Сообщение от qwertehok Посмотреть сообщение
поставь Sp_whoisactive
и посмотри кто и чем занимается в твоей БД
Спасибо тебе с твоей помощью я определил что это триггер.

Добавлено через 30 секунд
ТЕМУ можно закрыть!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2019, 11:40
Помогаю со студенческими работами здесь

Проблема с чтением данных из таблиц Sql
Написал &quot;синхронизатор&quot; между базами Lotus и таблицами SQL. Данные из лотуса закидываются нормально, но затем не могу прочитать то что...

Как выгрузить базу данных 1с 8.2 с SQL сервера в новую созданную локальную базу?
Добрый день! Возникла следующая проблема, при работе в конфигураторе с базой которая находится на сервере SQL тормозит у пользователей...

Что нагружать программисту RAM или CPU?
Возможно вопрос некорректен или неправильно поставлен, в любом случае надеюсь на грамотное объяснение или ссылки на нужные статьи...

Высокая температура ноутбука SAMSUNG, боюсь нагружать
Всем привет! Ситуация следующая: ноутбук Samsung 300V5A Core i5 2410M 2.3GHz, gt 520mx 1Gb, 6Gb ram Ноутбуком толком никто не...

Может ли большое количество условий в таймере нагружать CPU на 100%?
Есть некое подобие игры, в которой нужно посадить корабль на двигающуюся платформу. Для проверки столкновения или приземления я добавил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru