Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

Помогите оптимизировать процедуру MSSQL2000   Найти похожие ветки 

 
Димон111   (2002-11-04 13:10) [0]

Нужно
1) вытащить из таблицы строчку,
2) Записать в другую табличку № этой строки,
3) вернуть ResulSet полученный в п.1

делаю так:

CREATE PROCEDURE DBO.PostsEvent
@FBarcode char(20)
AS
declare @fid int
SELECT @fid=ID FROM MyTable WHERE Barcode=@FBarcode
INSERT INTO LOG (CURRENT_TIMESTAMP, @fid ) // вставить значение из запроса
SELECT * FROM MyTable WHERE id=@fid
GO

приходится 2 раза открывать запрос, подскажите плиз , может как-нибудь лучше с курсором это сделать

спасибо


 
3JIA9I CyKA   (2002-11-04 13:16) [1]

Типа этого
declare
@p1 int,
@p2 varchar(10)
select
@p1 = id,
@p2 = [чё-то]
from [где-то]
where blablabla = "бу-бу-бу"

insert ....
select
ID = @p1,
[чё-то] = @p2


 
Димон111   (2002-11-04 13:22) [2]

2 3JIA9I CyKA ©

Проблема в том что, полей много, а одно из них вообще БЛОБ.

может что-то типа

DECLARE CURSOR MyCur
as select * from MyTable where Barcode=@Fbarcode
open MyCurr
INSERT INTO LOG (CURRENT_TIMESTAMP, MyCur.ID)
SELECT * FROM MyCurr



?


 
Димон111   (2002-11-04 14:14) [3]

Господа, есть ещё идеи?


 
Marcus   (2002-11-04 18:00) [4]

А чем тебя исходный вариант не устраивает. Все равно самая тормозная часть это SELECT @fid=ID FROM MyTable WHERE Barcode=@FBarcode, поскольку поиск по строке.
А выбор по id, да еще если это primary key, выполняется практически мгновенно. Так что это не поле для оптимизации



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
3-82607
Barmalej
2002-11-04 12:52
2002.11.25
В одной колонке два поля?


1-82755
V-A-V
2002-11-15 12:55
2002.11.25
Версия приложения


1-82800
Mp@k
2002-11-13 11:30
2002.11.25
Закрытие приложения


14-82952
Anatoly Podgoretsky
2002-11-06 07:37
2002.11.25
Именинники 6 ноября


1-82821
Slava
2002-11-13 13:46
2002.11.25
Перерисовка на канве формы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский