Радикальное увеличение скорости

Обсуждение технических вопросов работы с системами управления базами данных (СУБД), работе с языком SQL и скриптовыми языками.
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: Радикальное увеличение скорости

Сообщение Disillusioned »

Поскольку у меня Sybase, то с полной уверенностью тебе не скажу про MS SQL...
Но попробуй так:

Код: Выделить всё

  Dim lCon,lRecSet
  Set lCon = GetADOConnect()
  Set lRecSet = LCon.Execute("CALL lsdbo.xpGetArray... ? 
Если не прокатит попробуй:

Код: Выделить всё

  Dim lCon,lRecSet,sql
  Set lCon = GetADOConnect()
  Set lRecSet = CreateObject("ADODB.RecordSet")
  sql="CALL lsdbo.xpGetArray...
  lRecSet.Open sql,lCon
Если это не прокатит, вот третий вариант

Код: Выделить всё

  Dim lCon,lRecSet,sql
  Set lCon = GetADOConnect()
  Set lRecSet = CreateObject("ADODB.RecordSet")
  sql="SELECT * FROM lsdbo.xpGetArray(...
  lRecSet.Open sql,lCon
Ах и с ними невозможно
И без них никак нельзя
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

вот - совсем другое дело!!!!!! :wink:
в общем смысл ясен...
я щас прикинул - и понял что много лишнего надо писать, пока отладка...
я так скриптик набросал посмотрел, через неделю переписал и т.д.

когда настройку на продажу выставим тогда только хп :wink: а пока не катит :wink:
но все равно спасибо вроде общая картина по ускорению данного защищенного монстра начинает складываться :wink:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Юрий
Активный участник
Сообщения: 239
Зарегистрирован: 13 янв 2005, 14:30
Используемое ПО: Lotsia PDM PLUS LT
Откуда: Украина, Донецк
Контактная информация:

Re: Радикальное увеличение скорости

Сообщение Юрий »

Самый лучший вариант это не хп, а функции возвращающие табличный результат.
Это практически View но к которым можно прицепить параметры и очень гибко
управлять результатом.
Советую. :!:
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

а что именно советуешь?
вот эта функция lRecSet.Open sql,lCon и возвращает табличный результат в рекордсет

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Юрий
Активный участник
Сообщения: 239
Зарегистрирован: 13 янв 2005, 14:30
Используемое ПО: Lotsia PDM PLUS LT
Откуда: Украина, Донецк
Контактная информация:

Re: Радикальное увеличение скорости

Сообщение Юрий »

Функции базы данных:
Например :

Код: Выделить всё

CREATE FUNCTION LSDBO.GetRezFromBase 
(	
	-- Add the parameters for the function here
	@p1 int, 
	@p2 char
)
RETURNS TABLE 
AS
RETURN 
(
	SELECT * from ........
)
GO
а потом ее используешь

Код: Выделить всё

select * from LSDBO.GetRezFromBase(1,2)
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

не... я против написания своих функций в базе
только штатная структура и наполнение - весь анализ внешними функциями COM и внутренними селектами :wink:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Юрий
Активный участник
Сообщения: 239
Зарегистрирован: 13 янв 2005, 14:30
Используемое ПО: Lotsia PDM PLUS LT
Откуда: Украина, Донецк
Контактная информация:

Re: Радикальное увеличение скорости

Сообщение Юрий »

Я всеравно не пойму чем селект написанный в функции отличается от селекта
написанного в скрипте??? :?
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

только тем что он (селект в скрипте) написан без использования программирования БД

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Юрий
Активный участник
Сообщения: 239
Зарегистрирован: 13 янв 2005, 14:30
Используемое ПО: Lotsia PDM PLUS LT
Откуда: Украина, Донецк
Контактная информация:

Re: Радикальное увеличение скорости

Сообщение Юрий »

Да ты что! :shock:
А я думал, что select это и есть прграммирование
базы данных, точнее одна из команд прграммирования. :lol:
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

Select - эт не программирование - точно знаю :wink: :wink: :wink:
ладно закончили

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Радикальное увеличение скорости

Сообщение Старик Крупский »

Конечно, не программирование! Программирование - это update :mrgreen:
"Лучше меньше, да лучше" (C)
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

:wink: ты не поверишь я еще в базе, запросы мучаю и ищу быстродействие - но не нахожу

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: Радикальное увеличение скорости

Сообщение Disillusioned »

Юрий писал(а):Самый лучший вариант это не хп, а функции возвращающие табличный результат.
Это практически View но к которым можно прицепить параметры и очень гибко
управлять результатом.
Советую. :!:
Когда я заводил речь о ХП, я имел в виду и procedure и function, т.к. в каждой из поддерживаемой Лоцией СУБД их возможности весьма сильно разнятся.
Если в MS SQL возможна функция возвращающая таблицу, то в Sybase ASA нет (однако ничто не мешает ставить процедуры во FROM и делать с ними любые, в том числе и боковые"lateral" соединения). Т.е. то что в MS SQL - функция, в Sybase ASA - процедура...
Ах и с ними невозможно
И без них никак нельзя
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

Disillusioned - СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Юрий - СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
:wink: :wink: :wink: :wink: :wink: :wink: :wink: :wink: :wink:
короче плюнул на предрассудки, написал в базе функцию типа

Код: Выделить всё

ALTER  function [LSDBO].[Ric........
        (@Obj_Mnemo char(256) )
Returns table
 as
  return
( 
  SELECT 
         vv0.value AS ...,
         vv1.value AS ...,
         vv2.value AS ...,
         vv3.value AS ...
...
)
и табличный результат + пару служебных столбцов в многомерный массив Wokrflow типа

Код: Выделить всё

f_EmbeddedSQLSelect ( this , 'select pRating, pObjDescr, pAtrVendor, 0 as pBt, pObjID from LSDBO.Ric...(~''+ vProductTypeCurrent +'~') Order by  '+ if( p_TOP=0,'pObjDescr','pRating desc, pObjDescr') , '' , 'pFormPrice' )
f_RetrieveForm ( this , '' ,  'pFormPrice'  )
Сижу - балдею, скорость это - все!!!!

ps
но все равно я против того чтоб в базу писать свои процедуры и функции :wink: :wink: :wink: :wink:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Радикальное увеличение скорости

Сообщение Александр »

Еще вопрос...
с табличным ускорением вроде все понятно - а как лучше ускорить выборку блока одиночных переменных
т.е. другими словами мне нужно быстро выполнить ряд разноплановых запросов и передать результату в WorkFlow
как лучше?
написать хп которая наберет строку из полученных результатов - передает ее в WorkFlow где строка уже будет разобрана на составляющие???
или как?
пока варианта лучше скрипта под админом без создания быстрого пользователя не вижу...
делать отдельные процедуры/функции тож смысла вроде нет - т.к. запросов много и они в отладке т.е. могут изменится в любой момент

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Ответить