Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл / 12 сообщений из 12, страница 1 из 1
25.10.2018, 17:11
    #39722959
SangYong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
вот так по ключу доступ к записи все норм:
Код: sql
1.
update dbo.tbl_AllOrdersToSattelites set [Send] = 1 where id = 301287 



вот по не индексированному полю зависает и при просмотре блокировок
появляется блок, запрос сам не умирает - приходится его отменять
апдейт не проходит - хотя таже запись верхним запросом апдейтится норм
Код: sql
1.
update dbo.tbl_AllOrdersToSattelites set [Send] = 1 where idZ = 6014



селект тоже норм:
Код: sql
1.
select * from dbo.tbl_AllOrdersToSattelites where idZ = 6415



если линкнутся из MSA (линковка по ключу) , то руками можно единицы проставлять
как хочешь, фильтры и сортировки по idZ тоже норм - блокировок нет

все таблицы крутятся несколько лет - вот седня позвонили и я не смог
понять в чем дело - может кто что посоветует...пока перевел в ручной режим
простановку признака
...
Рейтинг: 0 / 0
25.10.2018, 17:13
    #39722962
SangYong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
триггеров на таблице не висит...
...
Рейтинг: 0 / 0
25.10.2018, 17:23
    #39722974
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
в индекс по idZ добавьте INCLUDE(Send)
...
Рейтинг: 0 / 0
25.10.2018, 17:31
    #39722976
SangYong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
это приведет к блокировке таблицы ? народ пока еще пашет...
...
Рейтинг: 0 / 0
25.10.2018, 17:33
    #39722977
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
индекс нужно перестроить, используйте окно обслуживания своей базы.
но сначала проанализируйте актуальные планы выполнения ваших запросов, возможно проблема не в этом
...
Рейтинг: 0 / 0
25.10.2018, 17:37
    #39722981
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
SangYongпоявляется блок, запрос сам не умирает - приходится его отменятьsp_who2
И смотрите какая сессия блокирует ваш update.
...
Рейтинг: 0 / 0
25.10.2018, 17:51
    #39722989
SangYong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
нет блокировок

пока костыль поставил:
Код: sql
1.
2.
 update dbo.tbl_AllOrdersToSattelites set idZ_Sended = 1 
 where id in (Select  id from  dbo.tbl_AllOrdersToSattelites  where idZ = 6415)



криво но отрабатывает...
...
Рейтинг: 0 / 0
25.10.2018, 18:53
    #39723024
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
SangYongвот так по ключу доступ к записи все норм:
Код: sql
1.
update dbo.tbl_AllOrdersToSattelites set [Send] = 1 where id = 301287 




вот по не индексированному полю зависает и при просмотре блокировок
появляется блок, запрос сам не умирает - приходится его отменять
апдейт не проходит - хотя таже запись верхним запросом апдейтится норм
Код: sql
1.
update dbo.tbl_AllOrdersToSattelites set [Send] = 1 where idZ = 6014

Что то странное... База то не битая? Чекдб делали?
...
Рейтинг: 0 / 0
25.10.2018, 18:59
    #39723026
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
SangYongпока костыль поставил:
Код: sql
1.
2.
 update dbo.tbl_AllOrdersToSattelites set idZ_Sended = 1 
 where id in (Select  id from  dbo.tbl_AllOrdersToSattelites  where idZ = 6415)




криво но отрабатывает...Это как раз и подтверждает, что первоначальный запрос блокировался другой сессией.
...
Рейтинг: 0 / 0
25.10.2018, 19:57
    #39723066
Владимир Затуливетер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
Разберитесь с локом, какой-то апдейт видимо держит одну из записей таблицы.
Ну и индекс по полю idZ не помешает.

Код: sql
1.
2.
3.
create index IDX_tbl_AllOrdersToSattelites_idZ
on dbo.tbl_AllOrdersToSattelites ( idZ )
with (online = on)



Можно в онлайне, не блокируя пользователей, если редакция сервера позволяет.
...
Рейтинг: 0 / 0
25.10.2018, 20:00
    #39723071
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
Владимир Затуливетеркакой-то апдейт видимо держит одну из записей таблицы.select держит, не update.
...
Рейтинг: 0 / 0
25.10.2018, 22:05
    #39723135
SangYong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл
Чекдб не делал - я про нее сначала почитаю :) .

Повторюсь - из MSAccess я могу редактировать именно
эту запись (равно как и другие) - проблем нет. Но MSA по ключу к ней линкуется.
По ключу и у меня все редактируется. Не редактируется по полю, не состоящему
в индексах. А костыль нормально отдупляется. Ну были бы там триггеры - я бы их
перебрал насчет ошибок...

Наличие блокировок и активных процессов проверяю:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT sess.[login_name], sess.[host_name], qs.start_time, sess.last_request_start_time, object_schema_name(st.objectid, st.dbid) 
                         + '.' + object_name(st.objectid, st.dbid) AS [Procedure], CASE WHEN qs.sql_handle IS NULL THEN ' ' ELSE (substring(st.text, (qs.statement_start_offset + 2) / 2, 
                         (CASE WHEN qs.statement_end_offset = - 1 THEN len(CONVERT(nvarchar(MAX), st.text)) * 2 ELSE qs.statement_end_offset END - qs.statement_start_offset) / 2)) END AS query_text, sess.cpu_time, 
                         qs.logical_reads, qs.writes, sess.session_id, CASE WHEN qs.wait_type = 'CXPACKET' AND qs.blocking_session_id = 0 THEN cp.[blocked] ELSE qs.blocking_session_id END AS blocking_id, 
                         isnull(NULLIF (qs.wait_resource, ''), cp.[waitresource]) AS waitresource, qs.wait_time, qs.wait_type, CONVERT(xml, pl.query_plan) _plan, rgwg.[name]
FROM            sys.dm_exec_sessions sess /* To get blocking info for parallel queries*/ OUTER apply
                             (SELECT        TOP 1 blocked, esp.waitresource
                               FROM            master.dbo.sysprocesses esp
                               WHERE        esp.spid = sess.session_id AND esp.blocked > 0 AND esp.blocked <> esp.spid) cp INNER JOIN
                         sys.dm_exec_requests qs ON qs.session_id = sess.session_id AND qs.[wait_type] NOT IN ('BROKER_RECEIVE_WAITFOR', 'BROKER_TASK_STOP') LEFT JOIN
                         sys.dm_exec_procedure_stats ps ON ps.sql_handle = qs.sql_handle AND ps.[plan_handle] = qs.[plan_handle] OUTER apply master.sys.dm_exec_sql_text(qs.sql_handle) st OUTER 
                         apply sys.dm_exec_text_query_plan(qs.plan_handle, qs.statement_start_offset, qs.statement_end_offset) pl INNER JOIN
                         sys.resource_governor_workload_groups AS rgwg ON rgwg.[group_id] = sess.[group_id]
WHERE        (sess.[host_name] IS NOT NULL )



пока сам в дизориентации...всем спсб
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с апдейтом - неск. лет нормально все было - сейчас проблем всплыл / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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