Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему select count(*) from tablename запрос занимает много время? / 25 сообщений из 53, страница 1 из 3
25.03.2019, 08:49
    #39790754
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Добрый день всем! У меня есть таблица там больше 100 млн записи. Все нужные поля индексирован. Ребята помогите пожалуйста
...
Рейтинг: 0 / 0
25.03.2019, 08:50
    #39790756
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Задача какая?
...
Рейтинг: 0 / 0
25.03.2019, 10:43
    #39790807
архивариус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT
   Total_Rows= SUM(st.row_count)
FROM
   sys.dm_db_partition_stats st
WHERE
    object_name(object_id) = 'T' AND (index_id < 2);


select COUNT(*) from T;
...
Рейтинг: 0 / 0
25.03.2019, 11:03
    #39790817
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
У меня есть таблица я его использовался как лог. Каждый секунде есть 1000 записи. Если я хочу получить информация именно выбранный период, он занимает больше 30 минут , тот время мой сервисе не записывают история в лог
...
Рейтинг: 0 / 0
25.03.2019, 11:06
    #39790820
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
KahramonУ меня есть таблица я его использовался как лог. Каждый секунде есть 1000 записи. Если я хочу получить информация именно выбранный период, он занимает больше 30 минут , тот время мой сервисе не записывают история в лог
если просто, то ваш вариант скорее всего NOLOCK
...
Рейтинг: 0 / 0
25.03.2019, 11:16
    #39790826
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
TaPaK,
как мне устранить эту проблему. У меня есть два сервиса который записывает лог. 1. Через проседедура. 2. Через web api. Пожалуйста помогите. Извините мой русскый язык
...
Рейтинг: 0 / 0
25.03.2019, 11:27
    #39790835
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Kahramon,
Код: sql
1.
SELECT COUNT(*)AS CNTT FROM TABLEA(WITH NOLOCK)
...
Рейтинг: 0 / 0
25.03.2019, 11:28
    #39790836
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Kahramon,

Если нет возможности править запросы, то или чере querystore или перевести базу в RCSI
...
Рейтинг: 0 / 0
25.03.2019, 12:15
    #39790875
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
TaPaK,

Так попробовал. Никаких результаты нет. Опять занимал больше 30 минут. Если у вас время есть напишите мне на телеграмм (@qahramon0786). Я вам доступ открою
...
Рейтинг: 0 / 0
25.03.2019, 12:30
    #39790882
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Msg 601, Level 12, State 3, Line 5
Could not continue scan with NOLOCK due to data movement.
...
Рейтинг: 0 / 0
25.03.2019, 12:33
    #39790884
.Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
KahramonУ меня есть таблица там больше 100 млн записи. Все нужные поля индексирован(...) Каждый секунде есть 1000 записи.
1000 * 60 * 60 * 24 = 86 миллионов записей в сутки. 2,5 млрд записей в месяц. 31 млрд. записей в год. Я испытываю уважение к людям, умеющим управлять такими объемами данных (как вообще, так и на MS SQL в частности). Но чувствую, что-то здесь не так...
...
Рейтинг: 0 / 0
25.03.2019, 12:37
    #39790885
WarAnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Kahramon,

1. show your execution plan
2. "Could not continue scan with NOLOCK due to data movement." seem to be hdd dies
...
Рейтинг: 0 / 0
25.03.2019, 12:51
    #39790893
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
WarAnt,
How can i check hdd ? i have been sql server 2005 database and i changed it to sql server 2014. when i attach database there is no errors and warning.

Евгений

У меня груба 5000 терминал. они отправляет свой статус каждый секунд. Я сам не знаю как это проблема решить. Пожалуйста поделился своим опытом
...
Рейтинг: 0 / 0
25.03.2019, 13:12
    #39790905
.Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
KahramonУ меня груба 5000 терминал. они отправляет свой статус каждый секунд. Я сам не знаю как это проблема решить. Пожалуйста поделился своим опытом
Например, можно логировать не статус, а изменение статуса.
...
Рейтинг: 0 / 0
25.03.2019, 13:15
    #39790907
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Фактически это не обязательно проблема базы...
Можете пробовать сменить на поиск из метаданных 21842488
...
Рейтинг: 0 / 0
25.03.2019, 13:23
    #39790910
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
.Евгений, Может я не так объяснил ситуация. дайте мне ваши контакт я вам доступ открою через teamviewer
...
Рейтинг: 0 / 0
25.03.2019, 13:47
    #39790925
.Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Kahramon.Евгений, Может я не так объяснил ситуация. дайте мне ваши контакт я вам доступ открою через teamviewer
Kahramon, вам уже предложили считать количество строк на основе метаданных. Любой другой вариант либо займет существенное время, либо замедлит вставку новых строк, либо потребует изменить архитектуру.

Сам запрос мне не интересен, а вот архитектура логирования вызвала у меня некоторое недоумение.
...
Рейтинг: 0 / 0
25.03.2019, 14:04
    #39790943
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
KahramonЕсли я хочу получить информация именно выбранный период, он занимает больше 30 минут

[quot .Евгений]KahramonЛюбой другой вариант либо займет существенное время, либо замедлит вставку новых строк, либо потребует изменить архитектуру.


Ну чо так уж печально?
Фсе очень сильно зависит от организации записи в лог (кластерный индекс), размеров "периода" и его соотношения с кластерным индексом...
...
Рейтинг: 0 / 0
25.03.2019, 14:15
    #39790951
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Kahramon,

для хранения журналов веб-сервисов больших объёмов обычно используют нереляционные СУБД.
...
Рейтинг: 0 / 0
25.03.2019, 14:38
    #39790970
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
aleks222,
Ребята , я не такой профессионал как вы. Может у меня есть много ошибок когда строил архитектурную базу. Пожалуйста помогите мне найти причину. У меня сейчас есть копия база данный , если вам интересно определить ошибки я вам открою доступ.
...
Рейтинг: 0 / 0
25.03.2019, 15:06
    #39790986
.Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
aleks222Ну чо так уж печально?
Фсе очень сильно зависит от организации записи в лог (кластерный индекс), размеров "периода" и его соотношения с кластерным индексом...
Как волка не корми, все равно яйца больше медвежьих не вырастут. Можно еще унести данные на SSD или In-memory, но суть проблемы остается в другом: в логе лежат никому не нужные десятки и сотни миллионов записей, данные востребованы в другом разрезе. И вместо изменения принципа хранения данных разработчик будет героически преодолевать трудности, созданные им же.
...
Рейтинг: 0 / 0
25.03.2019, 16:01
    #39791022
Kahramon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
А можно создавать каждый месясь отдельный таблица(log_month_year) и сохранить как ndf(log_month_year.ndf) файл?
...
Рейтинг: 0 / 0
25.03.2019, 17:41
    #39791087
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Kahramonaleks222,
Ребята , я не такой профессионал как вы. Может у меня есть много ошибок когда строил архитектурную базу. Пожалуйста помогите мне найти причину. У меня сейчас есть копия база данный , если вам интересно определить ошибки я вам открою доступ.

Зачем твоя база?

Определение таблицы и пример запроса - будет полезнее.
...
Рейтинг: 0 / 0
25.03.2019, 17:53
    #39791098
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Kahramon,
Должно помочь - естетсвенно будет верно если статистика апдейчена
для личных целей - посмотреть Count таблиц - САМОЕ ТО


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT  s.name AS [schema], t.name TableName,   p.rows 
from sys.objects t     -- with (nolock)
JOIN sys.schemas s 
     ON t.schema_id=s.schema_id
	 JOIN sys.partitions  p 
	        ON p.object_id = t.object_id 
			JOIN sys.indexes i 
			ON i.index_id=p.index_id AND t.object_id=i.object_id
			WHERE 
			t.type = 'U' and i.type_desc in ('CLUSTERED','HEAP')  
			order by  3 desc
...
Рейтинг: 0 / 0
25.03.2019, 17:58
    #39791103
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему select count(*) from tablename запрос занимает много время?
Гулин Федор,

1. Для получения имени схемы есть удобная функция object_schema_name().
2. В таблице может быть более одной партиции.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему select count(*) from tablename запрос занимает много время? / 25 сообщений из 53, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]