powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MDB+SQL?
37 сообщений из 37, показаны все 2 страниц
MDB+SQL?
    #32491839
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть мдб : данные+ n*клиет

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

вот текст



Код: 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
MDB+SQL?
    #32492159
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2АлексеюК\r
\r
Вот по смотри на алгоритм (и ссылки на другие) нечеткого сранения строк - м.б. что-то пригодится
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492199
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на чем там все закончилось ? так и осталось 5 минут выполнения ???

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

например

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

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

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

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

и так далее в порядке убывания похожести
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492745
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в SQL есть функция нечеткого сравнения , смотрел?
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492750
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
естественно... - она не решает моей задачи
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492775
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще где-то видел (пока не могу вспомнить) "фонетическое" сравнение
с оператором like сравнивает и возвращает коэф. похожести.
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492802
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если ты имеешь ввиду soundex и diffirence
то я знаю об этих операторах, просто не знаю как можно использовать возвращаемые ими значения для оценки степени похожести в контексте данной задачи
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492829
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати соундекс и диференс работают только с латиницей - русские буквы у них все похожи )) как у нас все негры на одно лицо ))

но мысль закралась ...
сохранять названия по словам и в транслитерации а в сумму похожести брать
сумму созвучности всех слов ...
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492847
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2АлексейК

а типа like использовать вместо substring?

это у тебя единственный вариант или были пробные промежуточные?
...
Рейтинг: 0 / 0
MDB+SQL?
    #32492898
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора типа like использовать вместо substring?

это у тебя единственный вариант или были пробные промежуточные

вариантов было штук 50

сейчас еще пару проверил.

этот ПОКА единственный который выдавал необходимый результат затрачивая на несколько порядков меньше времени....


с диференсом и соундексом - полная лажа.
откопал я и транслитерацию и разбивку по словам

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

извини , пропустил пост

у меня алгоритм такой:

искомая строка разбивается на максимально возможное число частей

каждому куску присваивается (в зависимости от длины) степень похожести

результирующая таблица кусков сравнивается с таблицей в которой надо искать

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



как я понял ты предлагаешь разбить на куски не искомую фразу а заранее все записи искомой таблицы....

я завтра обязательно попробую так сделать
...
Рейтинг: 0 / 0
MDB+SQL?
    #32493052
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/85462&hl=%ed%e5%f7%e5%f2%ea%ee%e5\r
\r
/topic/85462&hl=%ed%e5%f7%e5%f2%ea%ee%e5/]
...
Рейтинг: 0 / 0
MDB+SQL?
    #32493053
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут рассматриваются варианты\r
\r
Фонетический поиск
...
Рейтинг: 0 / 0
MDB+SQL?
    #32493170
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 вадя

по одной из твоих ссыллок вышел на интересную вещь
http://vlak.webzone.ru/rus/projects/fuzzycmp.html

алиасная длл для сравнения строк

в VB поробовал - вроде неплохо
сравнивает две строки в 39 символов:
делает 1000 циклов за полсекунды и выдает числовой результат похожести

вроде неплохой вариант - сейчас попробую запихнуть на сервер в расширенную хранимую процедуру. результаты сообщу
...
Рейтинг: 0 / 0
MDB+SQL?
    #32493280
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жду с нетерпением
назревает необходимость использовать
...
Рейтинг: 0 / 0
MDB+SQL?
    #32504446
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращаясь к истокам - попробовал прилинковать к SQL mdb'шку и перевести на TSQL один из 'тяжелых' запросов. Получил выигрыш в 50 раз.
Так что вполне возможно что смысл в этом есть.
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MDB+SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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