Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Добрый день
Подскажите пож. почему я не могу адлить данные из таблицы.
Пытаюсь применить команду: Truncate table 'dbo.Тбл_Прайс' запрос зависает и ничего удаляет из таблицы.

Пытаюсь руками удалить эту таблицу, таблица не удаляется, вылетает следующая ошибка:
автор
Drop failed for Table 'dbo.Тбл_Прайс'. (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Lock request time out period exceeded. (.Net SqlClient Data Provider)


с другими таблицами таких проблем нет
Так же, в эту таблицу можно добавлять значения в ручную.

Что не так. Подскажите пож.
19 июн 13, 11:38    [14452669]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Glory
Member

Откуда:
Сообщений: 104760
Юра613
Что не так. Подскажите пож.

Кто-то использует таблицу
19 июн 13, 11:40    [14452682]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Я что-то не понял, Вам таблицу удалить или только данные надо?
19 июн 13, 11:41    [14452694]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Мне данные удалить надо, но я думал какие-то проблемы с таблице и пытался пересоздать ее. В итоге ничего не получилось, тк не могу "старую" таблицу удалить
19 июн 13, 11:43    [14452704]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Glory
Юра613
Что не так. Подскажите пож.

Кто-то использует таблицу


А как узнать кто использует?
19 июн 13, 11:43    [14452708]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Glory
Member

Откуда:
Сообщений: 104760
Юра613
А как узнать кто использует?

Посмотреть список коннектов и заблокированных объектов
19 июн 13, 11:44    [14452714]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Glory
Юра613
А как узнать кто использует?

Посмотреть список коннектов и заблокированных объектов


А конкретнее можно? В какой меню зайти, где чего нажать и тд и тп?
19 июн 13, 11:47    [14452737]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Юра613,
Посмотрте текущие блокировки:
select distinct
	er.blocking_session_id as [SPID КТО], 
	es.session_id as [SPID КОГО],
	Cast(Round(er.wait_time*1.0/1000.0/60.0,2) as money) as [wait_time КОГО min.],
	Cast(Round(er2.wait_time*1.0/1000.0/60.0,2) as money) as [wait_time КТО min.],
	(es2.login_name + ' (' + es2.host_name + '; ' + er2.status + ')') as [КТО],
	(es.login_name + ' (' + es.host_name + '; ' + er.status + ')') as [КОГО],
	Cast(csql.text as varchar(max)) as [sql КОГО],
	Cast(csql.text as varchar(max)) as [sql КТО],
	er2.Command as [Command КТО],
	er.Command as [Command КОГО],
	er.database_id,
	er2.wait_resource as [resource КТО],
	er.wait_resource as [resource КОГО]
from
	sys.dm_exec_sessions es
	inner join sys.dm_exec_requests er on es.session_id = er.session_id 
	CROSS APPLY sys.fn_get_sql (er.[sql_handle]) as csql
	inner join sys.dm_exec_sessions es2 on es2.session_id = er.blocking_session_id
	inner join sys.dm_exec_requests er2 on er2.session_id = er.blocking_session_id 
	CROSS APPLY sys.fn_get_sql (er2.[sql_handle]) as csql2
order by
	Cast(Round(er.wait_time*1.0/1000.0/60.0,2) as money) DESC
19 июн 13, 11:49    [14452752]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Юра613
Мне данные удалить надо, но я думал какие-то проблемы с таблице и пытался пересоздать ее
можно еще винт форматнуть и винду ... ну для надежности
19 июн 13, 11:56    [14452795]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Юра613,
самое простое, если можно, то обрубить все сессии и удалить данные из таблицы
USE [master]
GO
ALTER DATABASE [test] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

ALTER DATABASE [test] SET  MULTI_USER
GO

Truncate table  [test].dbo.Тбл_Прайс
19 июн 13, 12:00    [14452816]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Паганель, а еще всех неблагочестивых пользователей порубать на фарш, тоже вариант

Спасибо всем, подсказали где смотреть, проблему решил, нашел еще топик
19 июн 13, 12:11    [14452896]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Glory
Member

Откуда:
Сообщений: 104760
Юра613
проблему решил

И в чем же она заключалась ?
19 июн 13, 12:15    [14452911]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Glory,
Посмотрел список подключенный пользователей, попросил их отключиться и все заработало. Как и было сказано ранее
Glory
Кто-то использует таблицу
19 июн 13, 12:23    [14452979]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Юра613
Glory,
Посмотрел список подключенный пользователей, попросил их отключиться и все заработало. Как и было сказано ранее
Glory
Кто-то использует таблицу

А вам не интересно кто и почему так долго удерживал таблицу?
19 июн 13, 12:26    [14453012]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Сергей Викт.,

Так я знаю кто и почему так долго.

Мне интересно почему она вообще заблокировалась, такого раньше не было, да и прямого доступа к этой таблице у пользователя не было и нет. Вот это для меня загадка
19 июн 13, 12:30    [14453043]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Glory
Member

Откуда:
Сообщений: 104760
Юра613
Мне интересно почему она вообще заблокировалась

Любое обращение к таблицам хоть какие то блокировки накладывает.

Юра613
Вот это для меня загадка

Вы же увидели коннект, который закюлокировал таблицу и его запрос/команду ?
Для чего вам тогда постили запрос-мониторинг ?
19 июн 13, 12:52    [14453229]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Glory,

Я воспользовался другим запросом из другого топика (ссылку я привел), попросил отключиться и все

А с этим запросом я еще не разобрался, данные надо было обновить как можно быстрее.
Я не разобрался что нужно писать вместо КТО и КОГО
19 июн 13, 13:02    [14453306]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
давно так не ржали
Guest
Юра613
Я не разобрался что нужно писать вместо КТО и КОГО

надо было просто скрипт запустить.
КТО/КОГО это второе слово в названии столбцов
19 июн 13, 13:07    [14453354]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
давно так не ржали
Юра613
Я не разобрался что нужно писать вместо КТО и КОГО

надо было просто скрипт запустить.
КТО/КОГО это второе слово в названии столбцов



Блин, сначала я так и делал. Запрос ничего не показывает. По этому и спросил, надо ли было писать чего-нить вместо КТО/КОГО

Рад что повеселил
19 июн 13, 13:58    [14453808]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
давно так не ржали
Guest
Юра613,

да уж, у меня тоже нифига не показывает,
Сергей Викт., что не так?

1 сессия:
create table t1(id int identity, col int);
go

insert into t1 (col) values (1);

begin tran
update t1
set col = 2 where id = 1

2 сессия:
truncate table t1

3 сессия:
select *
from t1
where id = 1

4 сессия: запрос с КТО/КОГО

сессии 2,3 висят.
4-ая показывает пусто.

К сообщению приложен файл. Размер - 43Kb
19 июн 13, 14:12    [14453950]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Зато этот запрос все показывает

declare 
	@DbId as int = db_id(N'EP_Base_Sql')

use [master];

select
/*	[now] = cast(sysdatetime() as datetime2(0)) */
/*,	[db_name] = db_name(er.[database_id]) */
	es.session_id
,	er.[status]
,	er.command
,	[sql_command] = case when er.sql_handle is null then null else (select [text] from sys.dm_exec_sql_text(er.sql_handle)) end
,	er.blocking_session_id
,	es.[program_name]
,	es.[host_name]
,	es.[login_name]
,	es.[nt_user_name]
/*,	er.start_time */
/*,	er.[user_id] */
/*,	er.connection_id */

from
	sys.dm_exec_requests er
inner join
	sys.dm_exec_sessions es
on	es.[session_id] = er.[session_id]
where
	er.database_id = @DbId
19 июн 13, 14:19    [14454015]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
давно так не ржали
Guest
у меня и старый добрый sp_lock все показывает.

да и тот запрос тоже показывает,
если из него выкинуть одно соединение:

from
sys.dm_exec_sessions es
inner join sys.dm_exec_requests er on es.session_id = er.session_id
CROSS APPLY sys.fn_get_sql (er.[sql_handle]) as csql
inner join sys.dm_exec_sessions es2 on es2.session_id = er.blocking_session_id
--> inner join sys.dm_exec_requests er2 on er2.session_id = er.blocking_session_id <--
CROSS APPLY sys.fn_get_sql (er2.[sql_handle]) as csql2

да и в [sql КТО] совсем не КТО, а КОГО,
хотя SPID от КТО правильный

К сообщению приложен файл. Размер - 39Kb
19 июн 13, 14:33    [14454144]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
ну в общем вы поняли) Писали на работе для себя) что б проще было убивать сессии, которые блокировали выполнение текущих задач. На идеальность работы не претендую.
19 июн 13, 14:35    [14454170]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
Юра613
Member

Откуда:
Сообщений: 101
Сергей Викт.,

А у меня даже с вышеуказанными правками ничего не показывает.
19 июн 13, 14:42    [14454224]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется таблица  [new]
давно так не ржали
Guest
сейчас у Вас не показывает, т.к. никто никого не блокирует.
...а вот у меня возникают сомнения, что у Сергей Викт. это вообще когда-либо в подобном случае работало...
чтобы получить sql_handle от блокирующего запроса, он соединяет с sys.dm_exec_requests,
но вот незадача: в sys.dm_exec_requests НЕТУ блокирующего процесса!!!
т.е. вообще, когда выполняю
select *
from sys.dm_exec_requests

у меня не показывается сессия блокирующего процесса.
в БОЛ-е на sys.dm_exec_requests не вижу никаких оговорок, почему не все показывается.
может нам кто-то грамотный объяснит, почему sys.dm_exec_requests не показывет блокирующий процесс
(по крайней мере, если этот процесс открыл транзакцию и не закрыл)
19 июн 13, 15:02    [14454427]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить