![]() |
|
Модераторы: skyboy |
![]()
|
|
| lBugl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.8.2009 Репутация: нет Всего: 2 |
идея примерно такая:
обновлять данные в таблице если они существуют и добавлять если нет (table1) запрос:
как это можно оптимизировать? (вроде слышал что left join медленный) |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| lBugl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.8.2009 Репутация: нет Всего: 2 |
спасибо за предложение. почитал
переделал вот так:
получаю такие ошибки: Server: Msg 170, Level 15, State 1, Line 22 Line 22: Incorrect syntax near 'merge'. Server: Msg 156, Level 15, State 1, Line 23 Incorrect syntax near the keyword 'as'. а вот из-за чего уже не знаю... зы: сервер ms sql server 2000 |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| lBugl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.8.2009 Репутация: нет Всего: 2 |
ну тогда вопрос прежний...
можно ли оптимизировать код в 1-м посте? если да, жду совета или намёка =) |
|||
|
||||
| lBugl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.8.2009 Репутация: нет Всего: 2 |
вот этот подзапрос используется в обоих запросах
решил его вынести... почитал про курсоры, временные таблица наткнулся на тип table... курсоры как понял медленней поэтому с ними даже не пробовал делать, а вот через временную таблицу и переменную время выполнения примерно одинаковое правда вот для ВТ смог указать состовной pk, а для переменной типа table нет =\ мб это тоже бы повлияло на скорость. делал вот так: alter table @tmp add primary key(t1, t2) //error alter table #tmp add primary key(t1, t2) //good сейчас смотрю в сторону индексов, но думаю они не понадобятся для временной таблицы т.к. кол-во записей там до пару тысяч, а вот исходную таблицу возможно проиндексирую по полям которые входят во временную... зы: что б это не напоминало блог, я всё так делаю? =) |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
lBugl, с чего Вы вообще взяли, что приведенный вами фрагмент кода следует оптимизировать?
Ранее озвученные Вами предпосылки лишь подчеркивают сомнительность этой затеи. Это сообщение отредактировал(а) Zloxa - 8.9.2010, 19:07 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| lBugl |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.8.2009 Репутация: нет Всего: 2 |
фрагмент кода в посте перед вашим или в 1-м? если в первом, то меня не устраивает его время выполнения: долго. если в предпоследнем моём, то этот подзапрос встречается в обоих запросах и я подумал что было бы оптимальней если он просчитается один раз + затраты на таблицу...
какие предпосылки и какому коду мешают? =) немножко не понимаю зы: в результате сделал временную таблицу, добавил индексы в базовую и код стал выполняться в 2-3 раза быстрее... причём существенную роль сыграла именно таблица, а не индексы. но наверное это конкретно мой случай |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |