![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как обойти Timeot Expired [D6, MSSQL]
tormoz © (2005-08-11 15:26:00)Здравствуйте. Есть две таблицы: в первой 1550000 записей, во второй 950000. Необходимо выполнить запрос
SELECT pf1.*
FROM pf1 INNER JOIN
pfp ON pf1.SPOL = pfp.S_POL AND pf1.NPOL = pfp.N_POL
Точнее надо в первой таблице изменить значение одного поля, которое будет браться из второй таблицы по соответствию двух полей. Но не то что update, даже просто select не выполняется: пишет Timeout expired. Посоветуйте что-нибудь. Запросы пытаюсь выполнить через SQL Server Enterprise Manager.
Anatoly Podgoretsky (2005-08-12 21:38:00) [1]ANB © (12.08.05 11:26) [53]
О это вообще можная вещь позволяет выполнять запросы не обращаясь с самой таблице, что обеспечивает беспрецедентную скорость.
Nikolay M. (2005-08-12 12:06:00) [2]
> sniknik © (12.08.05 11:34) [54]
Вот на sql.ru есть возможность вставлять картинки в сообщение, чем народ и пользуется, когда показывает план запроса. Но ведь это sql.ru... :)
sniknik (2005-08-12 11:39:00) [3]Nikolay M. © (12.08.05 11:20) [52]
логичнее тогда
SET SHOWPLAN_ALL ON
там вроде инфы поболее
sniknik (2005-08-12 11:34:00) [4]> не катит? :)
чесно? не знал, не пользовался, и не знал. я счас попробовал и не впечатлило... инфы по сравнениюс тем чтонормально QA дает мало (не видно/не наглядно) т.что наверняка и не буду пользоваться.
ANB (2005-08-12 11:26:00) [5]
> tormoz (12.08.05 10:06) [50]
- индексы запости. От у меня предчуствие, что составных нету.
Nikolay M. (2005-08-12 11:20:00) [6]
> план наверное придется переписать (не знаю как скопировать),
> причем там интерены сведения те что во всплывающих подсказках
> у иконок. (много переписывать ;)
Уже не в первый раз наблюдаю у тебя извращенческие наклонности :)
SET SHOWPLAN_TEXT ON
не катит? :)
sniknik (2005-08-12 10:46:00) [7]tormoz (12.08.05 10:06) [50]
а индексы?
сдалай так (и проще и нагляднее получится) зайди в QA в дереве обьектов (если не включен его показ -> Tools->Object Browser->Show /Hide включи) выбираеш свою базу-таблицу, на таблице по правой кнопке мыши выбибираеш Script objects to New Window as->Create ... то что получилось копируй сюда вместо того что в [50].
план наверное придется переписать (не знаю как скопировать), причем там интерены сведения те что во всплывающих подсказках у иконок. (много переписывать ;)
tormoz (2005-08-12 10:06:00) [8]структура pf1(1550000 записей):
ID float 8 1
WFROM smallint 2 1
F_XA varchar 25 1
N_SR varchar 15 1
O_POL varchar 20 1
S_X varchar 1 1
SVNUM varchar 12 1
B_T varchar 10 1
B_PL varchar 60 1
AD_P varchar 80 1
SPOL varchar 7 1
NPOL varchar 8 1
T_L varchar 10 1
DOC_T varchar 40 1
A_T varchar 10 1
NDOG varchar 8 1
Структура pfp (950000 записей):
S_POL nvarchar 10 1
N_POL float 8 1
S_PAS nvarchar 25 1
DP nvarchar 10 1
F_PS nvarchar 25 1
I_RT nvarchar 20 1
O_T nvarchar 20 1
DR nvarchar 10 1
REGP nvarchar 10 1
REGS nvarchar 10 1
U_D nvarchar 30 1
DPL nvarchar 7 1
KW nvarchar 5 1
KV nvarchar 5 1
NDOG nvarchar 8 1
T_L nvarchar 12 1
S_TE nvarchar 10 1
План запроса он показал, как его можно скопировать? или просто написать, что там выведено?
Ольга (2005-08-12 08:13:00) [9]
> а план запроса - это про что?
Работайте в Query Analyzer - жизнь станет легче, жизнь станет веселее.
Показать план запроса: Query -> Show Execution Plan (в окне результата выполнения запроса появится новая закладка)
Nikolay M. (2005-08-11 22:18:00) [10]
> sniknik © (11.08.05 20:53) [41]
Ты забыл автору посоветовать, чтобы прежде, чем он у себя такое запустит, заявление на отпуск написать :)
2 tormoz
Индекс на поля простой или составной? Сервер БД действительно сервер или просто бывший комп начальника?
Alexander Panov (2005-08-11 21:20:00) [11]
EXEC sp_configure 'remote query timeout', 86400
RECONFIGURE WITH OVERRIDE
sniknik (2005-08-11 21:11:00) [12]Anatoly Podgoretsky © (11.08.05 20:59) [43]
фигня. в воскресенье поставлю ;о).
Fay (2005-08-11 21:07:00) [13]2 tormoz (11.08.05 20:46) [40]
Запусти QA, напиши там свой запрос, нажми Ctrl+L
Fay (2005-08-11 21:00:00) [14]2 sniknik © (11.08.05 20:53) [41]
Чем городить такие страхи, достаточно заказать nested loops. 8)
Anatoly Podgoretsky (2005-08-11 20:59:00) [15]sniknik © (11.08.05 20:45) [39]
Трепло
Fay (2005-08-11 20:58:00) [16]2 tormoz (11.08.05 20:46) [40]
Попробуй [9]
sniknik (2005-08-11 20:53:00) [17]Anatoly Podgoretsky © (11.08.05 20:42) [38]
ну так можно ему это обьяснить ;о)
сделать чтото вроде (пример из хелпа) но только не просто сканирование а со считыванием значения из другой таблици и апдейтом. в одно сканирование уложится, а не в массое обьеденение.
SET NOCOUNT ON
DECLARE @au_id varchar(11), @au_fname varchar(20), @au_lname varchar(40),
@message varchar(80), @title varchar(80)
PRINT '-------- Utah Authors report --------'
DECLARE authors_cursor CURSOR FOR
SELECT au_id, au_fname, au_lname
FROM authors
WHERE state = 'UT'
ORDER BY au_id
OPEN authors_cursor
FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname, @au_lname
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ' '
SELECT @message = '----- Books by Author: ' +
@au_fname + ' ' + @au_lname
PRINT @message
-- Declare an inner cursor based
-- on au_id from the outer cursor.
DECLARE titles_cursor CURSOR FOR
SELECT t.title
FROM titleauthor ta, titles t
WHERE ta.title_id = t.title_id AND
ta.au_id = @au_id -- Variable value from the outer cursor
OPEN titles_cursor
FETCH NEXT FROM titles_cursor INTO @title
IF @@FETCH_STATUS <> 0
PRINT ' <<No Books>>'
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @message = ' ' + @title
PRINT @message
FETCH NEXT FROM titles_cursor INTO @title
END
CLOSE titles_cursor
DEALLOCATE titles_cursor
-- Get the next author.
FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname, @au_lname
END
CLOSE authors_cursor
DEALLOCATE authors_cursor
tormoz (2005-08-11 20:46:00) [18]структуру щас подготовлю и выложу... а план запроса - это про что?
sniknik (2005-08-11 20:45:00) [19]Fay © (11.08.05 20:39) [35]
в общем да, было бы интересно. я уже готов сам тест делать, но боюсь места под такую базу у меня не хватит. (на всех винтах по 400-500мег максимум осталось ;(, уже винт себе дополнительный купил на 200гиг но вот вместо того чтобы установить его, сижу тут с вами треплюсь ;о))
Anatoly Podgoretsky (2005-08-11 20:42:00) [20]sniknik © (11.08.05 20:37) [34]
Я в целом говорил, а не частное.
Fay © (11.08.05 20:39) [35]
Хотелось бы (С) Председатель