powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Опитимизация работы sp_
2 сообщений из 2, страница 1 из 1
Опитимизация работы sp_
    #32004079
Олег Яговкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья! помогите ускорить работу процедуры если это возможно. Если нет сообщите.
В Transact-SQL пока не силен, а работу требуют!

CREATE PROCEDURE zsp_TEST AS
insert into ZTest
select a.id,a.name,a.crdate,b.name,c.name,b.length,b.xprec,b.xscale,b.typestat,
b.isnullable,b.cdefault,b.status,'новая таблица'
from sysobjects a, syscolumns b, systypes c
where
a.id=b.id and
b.xtype=c.xtype and
a.name not in(select name from ZTest)and

a.type='U' and
a.name <> 'dtproperties' and
a.name<>'ZTest'

insert into ZTest
select a.id,a.name,a.crdate,b.name,c.name,b.length,b.xprec,b.xscale,b.typestat,
b.isnullable,b.cdefault,b.status,'данные изменены'

from sysobjects a, syscolumns b, systypes c, ZTest d
where
a.id=b.id and
b.xtype=c.xtype and
a.name=d.name and
b.name=d.column_name and
a.type='U' and
a.name <> 'dtproperties' and
a.name<> 'ZTest' and

(c.name<>d.type_dan or
b.length<>d.length or
b.xprec<>d.prec or
b.xscale<>d.scale or
b.typestat<>d.typestat or
b.isnullable<>d.nullable or
b.cdefault<>d.default_value or
b.status<>d.status)
order by d.name

insert into ZTest
select distinct
a.id,a.name,a.crdate,b.name,c.name,b.length,b.xprec,b.xscale,b.typestat,b.isnullable,
b.cdefault,b.status,'новый столбец'

from sysobjects a, syscolumns b, systypes c, ZTest d
where
a.id=b.id and
b.xtype=c.xtype and

RTRIM(a.name)+RTRIM(b.name) not in
(select RTRIM(name)+RTRIM(column_name) from ZTest) and
a.type='U' and
a.name <> 'dtproperties' and
a.name<>'ZTest'

update ZTest
set change='столбец удален'
where
RTRIM(ZTest.name)+RTRIM(ZTest.column_name) not in
(select RTRIM(sysobjects.name)+RTRIM(syscolumns.name)
from sysobjects,syscolumns) and

(ZTest.change='новая таблица'or
ZTest.change='данные изменены' or
ZTest.change='новый столбец')
...
Рейтинг: 0 / 0
Опитимизация работы sp_
    #32004086
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
единственно что я бы изменил:
вместо выражений типа
and a.name not in(select name from ZTest)
лучше писать
and not exists(select * from ZTest zz where zz.name=a.name)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Опитимизация работы sp_
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]