Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MDB+SQL? / 25 сообщений из 37, страница 1 из 2
22.04.2004, 14:23
    #32491839
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
есть мдб : данные+ n*клиет

работает так : мдб<--->клиент (стандартная схема)

а ежели сделать Кингуру:

мдв<-------------->клиент
мдв<---->SQL<---->клиент

т.е. с одной и той-же базой (таблицам) работать и через SQL и напрямую?
часть результатов получать через SQL а часть стандартными запросами?

чтоб не переписывать всё на адп.
...
Рейтинг: 0 / 0
22.04.2004, 14:25
    #32491851
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
Больше того, что может mdb, ты все равно не получишь, а вот замедлить такой прослойкой работу - шанс высокий.
...
Рейтинг: 0 / 0
22.04.2004, 14:27
    #32491858
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
Делал я такую феню.
ставил на комп где лежит файло SQL сервер
и юзал данные из MDB-хи через опендатасоурсе
да тока это все мертвому припарки.
...
Рейтинг: 0 / 0
22.04.2004, 14:31
    #32491870
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
у меня есть один запросец используется часто(постоянно) выполняется долго.
для него почти все данные качаются на клиента, а потом клиент их перепахивает.
мож сиквел это быстрее сделает? хоть данные гонять не надо.
или сиквел при запросе данных с мдб - тормоз?
...
Рейтинг: 0 / 0
22.04.2004, 14:45
    #32491893
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
>а вот замедлить такой прослойкой работу
Да нет эфект какой никакой будет
ведь между MDB и SQL сервером не будет "узкой" сети,
а юзера будут получать только готовые данные.

только затраты на подобное пректирование будут больше,
чем на стандартный переход

MDB->MDBOdbcDirect+MSSQL->ADP+MSSQL
а еще лучше три часа потерять потом за пять минут долететь :)
MDB->ADP+MSSQL

и уж никак подобный подход не является альтернативой ADP

Только как очень временная заплата на очень тяжелое место.
...
Рейтинг: 0 / 0
22.04.2004, 14:48
    #32491904
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
Да, я тоже думаю что если сервак шустрый, то в частном случае может быть и эффективне.
А что за запрос? Что-то мне подсказывает, что тут в сторону OLAP'а (MS AS) глядеть нужно.
...
Рейтинг: 0 / 0
22.04.2004, 14:56
    #32491936
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
Только как очень временная заплата на очень тяжелое место

в яблочко...
OLAP пока еще не копал, может быть..

а запрос построен на основании счета / пересчета по нескольким таблицам
состоит из 4 уровней вложения с суммирование и условиями на вывод

на адп переход идет, правда не так быстро как хочется.
на адп аналогичный запрос делал - рабоает заметно быстрее, правда адп+SQL.
...
Рейтинг: 0 / 0
22.04.2004, 15:03
    #32491952
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
автора запрос построен на основании счета / пересчета по нескольким таблицам
состоит из 4 уровней вложения с суммирование и условиями на вывод
Т.е. выборка?
Тогда точно, OLAP.
...
Рейтинг: 0 / 0
22.04.2004, 15:11
    #32491975
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
>OLAP пока еще не копал
Когда твой запрос полностью переведенный на MSSQL
перестанет справлятся
тогда результат запроса со всеми возможными вариациями параметров
положиш в N-мерный кубик,
пересчитывать его будеш по ночам,
а готовые заранее расчитанные данные получать из кубика быстро-быстро.
Но до этого я думаю еще далеко.
Главное помни,что все с чем сталкиваешся люди уже прошли,
и инструмент для решения твоей проблеммы уже придумали :)
...
Рейтинг: 0 / 0
22.04.2004, 15:16
    #32491989
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
некоторые вещи не требуют олапа (особенно если объем данных умещался в недавнем прошлом в аксессе)

можно денормализовать базу по таблицам итогов или даже делать расчет в хранимке с сохранением промежуточных итогов по временным табличкам
...
Рейтинг: 0 / 0
22.04.2004, 15:24
    #32492011
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
Конечно можно. Только если с этим зпросом будет заниматься руководитель или аналитик, меняя 20 параметров и снова и снова запуская запрос, и это будет подгружать сервер и тормозить работу ни в чем не повинных юзеров?
Понятно, что нет четкой грани когда без AS можно прожить, а когда никак. Просто если изучить AS, многие трехэтажные процедуры на каждый случай жизни писать быстро расхочется - зачем, все же гораздо проще решается!
...
Рейтинг: 0 / 0
22.04.2004, 15:26
    #32492017
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
Все равно надо надуть щеки и делать OLAP,
хотябы потому что слово красивое :)
Да и интереснее так,
должны же програмеры хоть как-то за счет работодателя развлекатся :)

ща мы долго-долго
зато потом как все ...
...
Рейтинг: 0 / 0
22.04.2004, 15:32
    #32492032
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
И это, в том числе.
Ну есть у меня тяга к самообразованию.
Как и у всех тех на этом форуме, кто не только спрашивает но и отвечает.
А к OLAP'у я пришел не из праздного любопытства. Жизнь заставила.
...
Рейтинг: 0 / 0
22.04.2004, 15:35
    #32492046
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
у меня есть тяжкая процедура и юзают ее часто
может подскажете поможет ли мне олап ?

могу кинуть сюда суть и текст
...
Рейтинг: 0 / 0
22.04.2004, 15:50
    #32492114
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
тем кто пробовал олап:

поможет ли он в этом случае:

есть процедура в которую в качестве строкового параметра передается название клиента

цель процедуры вывести клиентов в порядке убывания похожести

степень похожести это числовое значение зависяшее от количества комбинаций совпадения символов в имкомой строке впродряд + количество таких совпадений (блоков)

используется у меня для проверки существующих перед тем как ввести нового клиента

вот текст



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
ALTER PROCEDURE clients_find_simple (@findstr nvarchar (50 ))


AS
SET NOCOUNT ON 


declare @len int		 -- динамическая для цикла длина искомой фразы
 
declare @start int           -- с какой позиции идет поиск
 
declare @findstrlen int    -- длина искомой строки
 
declare @scale bigint 	 -- для указания класса точности при возведении в степень
 

set @scale =  3 


 --set @findstr =%af_src_str_0
 


 -- очистка искомой строки от мусора
 
set @findstr = REPLACE( @findstr ,' ОАО','')
set @findstr = REPLACE( @findstr ,' OAO','')
set @findstr = REPLACE( @findstr ,' ОАО','')
set @findstr = REPLACE( @findstr ,' ООО','')
set @findstr = REPLACE( @findstr ,' OOO','')
set @findstr = Ltrim( @findstr )
set @findstr = Left(@findstr,  39 )
set @findstrlen = len(@findstr)

declare @allvariants table (wordpart  nvarchar (50 ) COLLATE SQL_Latin1_General_CP1251_CI_AS , stepen bigint )

 -- поиск совпадений менее 3 букв не существенен
 
set @start =  1 
while @start <=  @findstrlen -  3 
begin
	set @len =  3 
	while @len + @start -  1  <=  @findstrlen
	begin
  		insert into @allvariants (wordpart, stepen) values (   '%' +  SUBSTRING ( @findstr , @start , @len ) + '%' , power(@scale ,@len) )
	set @len = @len +  1 
	end
set @start = @start +  1 
end



SET NOCOUNT Off

select  cl.id_client, cl.name, ( select sum (stepen) from  @allvariants av where   cl.name  like av.wordpart    )
from client cl with (nolock) 


	RETURN 
...
Рейтинг: 0 / 0
22.04.2004, 16:00
    #32492159
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
2АлексеюК\r
\r
Вот по смотри на алгоритм (и ссылки на другие) нечеткого сранения строк - м.б. что-то пригодится
...
Рейтинг: 0 / 0
22.04.2004, 16:07
    #32492199
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
а на чем там все закончилось ? так и осталось 5 минут выполнения ???

у меня 1500 строк
и 39 максимальная длина строки - на 3-5 секунд грузит сервак....

но все равно парит что долго ..
...
Рейтинг: 0 / 0
22.04.2004, 16:32
    #32492330
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
2 Senin Viktor

ау, какой получился итог ?

быстрее оказалась функция предложенная ниже ?

сколько записей ?
Длинна искомой строки?
результирующее время выполнения?

или отказался и оставил вычисления на клиенте?
...
Рейтинг: 0 / 0
22.04.2004, 16:41
    #32492376
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
2АлексейК

Да не юзал я еще эти функции, поэтому и сравнивать не с чем.
Но если бы делал - сдеал бы добавочное индексируемое поле в таблице и заполнял его в триггере по подобному алгоритму - зачем на лету считать-то?
...
Рейтинг: 0 / 0
22.04.2004, 17:20
    #32492526
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
2АлексейК \r
тебе подойдет \r
Фильтрация формы\r
\r
я использую для поиска товара или клиентов
...
Рейтинг: 0 / 0
22.04.2004, 17:25
    #32492540
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
у меня в алгоритме разбивается на сотавляющие искомая строка
здесь никакое кеширование не спасет запрашивают каждый раз разное

- разбивать на составляющие записи таблицы - это новая мысль .. но ..

думаю не получится разбивать название клиента на составляющие в связанную таблицу - сдохнет быстро .... кажется, хотя попробовать можно...

это получается если 1000 клиентов и каждое название разбить на 1000 кусочков - это 1 000 000 записей а в связи с тем что поиск по like - индекс ни простой ни полнотекстовый не спасет...

хотя можно приколоться ))
...
Рейтинг: 0 / 0
22.04.2004, 17:29
    #32492552
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
2АлексейК

Все-равно не понятно. С чем строку сравиваешь? С данными из бд? Их можно обработать по выше описаному алгоритму. Твою строку расчитать по алгоритму (1 строка - это пару мс работы) и сравнить результат с табличным. Или я не допонял?
...
Рейтинг: 0 / 0
22.04.2004, 17:32
    #32492563
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
по первоначальному...
запросец врядли удастся переложить на олап (пока я так думаю)
хотя для самобразования нада будет покапаться.

вопрос проста в затыкании дыр.
поставить SQL и его помощью обработать мдб , а на клиенте из результатов ХП создать таблицу - мне проще и быстрее, только хочется знать какой будет выйгрыш в быстродействии при работе связки данные_из_мдб+SQL->клиент_мдб. 30-40% я бы сделал, а ежели меньше?
...
Рейтинг: 0 / 0
22.04.2004, 17:33
    #32492567
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
2 вадя

это совсем не то.

1 у меня выводятся все варианты
2 выводятся в порядке убывания похожести

например

ищем похожесть на

Красноярский ре с ной порт

процедура выдаст:

Красноярский речной порт
Краснодарский речной порт
Фигзнаеткаковский морской порт

и так далее в порядке убывания похожести
...
Рейтинг: 0 / 0
22.04.2004, 18:39
    #32492745
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB+SQL?
а в SQL есть функция нечеткого сравнения , смотрел?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MDB+SQL? / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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