Программа iNETsHOP - обработка, сравнение, анализ прайс листов поставщиков, создание каталога товаров интернет магазина Форум - Программа iNETsHOP - Техподдержка - Запрос переименования товаров в справочнике товаров


http://inetshop.in.ua/index.php?p=showtopic&toid=178&fid=18&area=1
11.01.2012 18:43

andrew5324


Пользователь iNETsHOP

Количество сообщений   33
Зарегистрирован:   03-01-2012, 13:08:19
как переименовать товары в базе не из интерпретатора вручную,а пакетно через Query Analyzer?



update [inetshop].[dbo].[TBL_GOODS] set [G_NAME] = replace(G_NAME,'BEKO','Beko');

есть запрос на переименования товаров,но стоит по словам Святослава "Блокировка транзакции или дисковая подсистема."
как побороть защиту в таблице [inetshop].[dbo].[TBL_GOODS]
в строке [G_NAME]
В чем ошибка данного запроса?


11.01.2012 22:05

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
SQL-запрос правильный, при его выполнении происходит блокировка транзакции других пользователей, или другие пользователи блокируют его выполнение. Это естественно, т.к. запрос пытается пройти по всем записям таблицы товаров которую используют почти все активные сессии. Блокировка транзакции - это не специальное ограничение созданное в программе iNETsHOP, а часть функционала работы DBMS MS SQL Server нацеленное на поддержание целостности данных - в результате чего одни и те же данные одновременно может изменять только один пользователь.

12.01.2012 10:25

andrew5324


Пользователь iNETsHOP

Тема начата

Количество сообщений   33
Зарегистрирован:   03-01-2012, 13:08:19
Блокировка
На данном фото мы видим,что запрос выполняеться 8 часов,и видим одни блокировки,при том что делался бекап базы и переносился но ноутбук,и с ноутбука чтоб не было лишних соединений пользователей(что мы видим на фото в нижнем правом углу)запускался процес.
Характеристики ноутбука
DualCore AMD Athlon X2 QL-64, 2100 MHz (10.5 x 200)
DIMM 4 Гб DDR2

при том что запрос на фильтр слова в наименование товаров выполняеться 1 секунду
SELECT [G_name] from [inetshop].[dbo].[TBL_GOODS];
Where [G_name] like 'BEKO%';


Прикрепленные файлы
глюк sql.jpg   ( 11 Просмотров | 254.3 KB )

12.01.2012 10:54

phantom


Пользователь iNETsHOP

Количество сообщений   11
Зарегистрирован:   23-02-2009, 19:56:48
select и update совершенно разные вещи, как их можно сравнивать?!? Даже не указаны количество строк в таблице

12.01.2012 10:56

phantom


Пользователь iNETsHOP

Количество сообщений   11
Зарегистрирован:   23-02-2009, 19:56:48
Притом выборки при первом запросе и втором могут быть совершенно разного количества строк! Первый запрос вообще без ограничений.

12.01.2012 11:22

andrew5324


Пользователь iNETsHOP

Тема начата

Количество сообщений   33
Зарегистрирован:   03-01-2012, 13:08:19
280000 товаров в базе и по ним маслает 10 часов,
все таки сделал запрос...

12.01.2012 11:29

phantom


Пользователь iNETsHOP

Количество сообщений   11
Зарегистрирован:   23-02-2009, 19:56:48
Надо условие поставить чтобы update был только на нужные записи