Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как обойти Timeot Expired [D6, MSSQL]


Страницы:   1 2 3

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]
Хотелось бы (С) Председатель


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо