powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBC необязательные параметры
25 сообщений из 158, страница 4 из 7
JDBC необязательные параметры
    #39701938
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarв общем 4 запроса сделал. надеюсь годно получилось??????
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701954
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetro123mayton,
Может я не понял идею, но выше увидел только декларацию интерфейса.
Намерения. Реализацию не увидел.
Совершенно верно. Я обсуждаю пока только идею на уровне фасада. Или того угла зрения
под которым на это будут смотреть.
Вам нравится идея?
Да конечно, для фасада идея здравая и разумная.
Только цели ТС просто поговорить или трёп со смыслом были видны с первым постом).
Удачи!
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701958
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДавайте сверх-задачу. Мы не знаем сведений о СУБД.это будет сразу не оптимально.

mayton1) Like создает нагрузку класса full-table scan.ну фулскан для like не имеет смысла, потому как поиск по like подразумевает не полную информацию о искомом, как правило отдельные части содержимого и порядок вхождения этих частей не известен
поэтому сканировать полностью таблицу нет смысла - вернёт много чего лишнего
следовательно надо ограничиться в приемлемое число возвращаемых записей - супермаксимум 20, реально 5 достаточно
если в найденном нет искомого - добавляем дополнительный like .
запускаем поиск - как правило находим уже с помощью глаз :)
практически - в 28000записях - достаточно 2 like
в 3лямах 3-4
нагрузка на субд практически нулевая- если у вас база в 3ляма записей для оперативной работы, значит и железо будете для этого использовать нормальное, и память не пожалеете. в моём примере 2.9лямов - 660мег на диске, выделяем 5гиг памяти - и поиск like происходит в памяти, без обращения к диску.
по скорости - при 28000 записях - на слабом железе и малой памяти - отображение при вводе каждого символа происходит практически мгновенно .
при 2.9млн - 3like -1.6 сек/ 1like-0.3сек(хорошее железо)нагрузка на проц на заметна по диспетчеру задач...
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701968
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcarв общем 4 запроса сделал. надеюсь годно получилось??????
у меня запроса всего 4, а вопросов у тебя аж 6! чего спрашиваешь то? тебе наверное надо умерить аппетиты)
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701971
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarу меня запроса всего 4, а вопросов у тебя аж 6! чего спрашиваешь то? тебе наверное надо умерить аппетиты)у меня 1 запрос
как ты насчитал 6?
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701976
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonДавайте сверх-задачу. Мы не знаем сведений о СУБД.это будет сразу не оптимально.
Так что. Откажешся кодить?
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701989
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТак что. Откажешся кодить?сделаю оптимально.
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701991
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпоэтому сканировать полностью таблицу нет смысла - вернёт много чего лишнего
следовательно надо ограничиться в приемлемое число возвращаемых записей - супермаксимум 20, реально 5 достаточно

Почему 20? Почему 5? Если клиент захочет все?

если в найденном нет искомого - добавляем дополнительный like .

Зачем?

Допустим есть табличка T1, с полями F1,F2,F3......

Я сразу пишу

Код: plsql
1.
2.
3.
4.
5.
SELECT .... FROM T1 WHERE 
F1 LIKE '%blah-blah%' OR
F2 LIKE '%blah-blah%' OR
F3 LIKE '%blah-blah%' OR
....


И решаю задачу целиком.

Если оптимизатор выбрал full table scan то ему уже пофиг сколько OR LIKE предикатов будет стоять 1 и сотня.
Тем более что по булевой логике первый сработавший предикат прерывает цепочку сравнений.

запускаем поиск - как правило находим уже с помощью глаз :)

Никаких глаз. Глаза врут. К чорту глаза.

практически - в 28000записях - достаточно 2 like
в 3лямах 3-4

Вообще не понял эту бухгалтерию. Почему 2? Почеу 3 ляма?

при 2.9млн - 3like -1.6 сек/ 1like-0.3сек(хорошее железо)нагрузка на проц на заметна по диспетчеру задач...
(морщится)

При чем здесь это? Что это за метрики? Давайте пока не будем это учитывать. Бесполезная инфа
и к моему предлагаемому интерфейсу не несет никакой пользы.
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701992
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonТак что. Откажешся кодить?сделаю оптимально.
Сделай. Интерфейс видел? Кодь.
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39701999
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяну фулскан для like не имеет смысла
по-моему кто-то кого-то не так понял. когда ты пишешь запрос вида like - бд может быть вынуждена просканировать все записи - это называется full scan
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702004
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaвадяну фулскан для like не имеет смысла
по-моему кто-то кого-то не так понял. когда ты пишешь запрос вида like - бд может быть вынуждена просканировать все записи - это называется full scan
Зачем веселье портишь? Я ждал следующих перлов
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702017
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПочему 20? Почему 5? Если клиент захочет все?потому что такой поиск оптимален когда вывод происходит по мере ввода
если данныз не много ~30000, можно начинать поиск с 1 введённого(теоретически - глупо, но проще код, меньше проверок) и соответственно при 1 введённом символе выведет почти всё
при 2 символах чуть меньше.
соответственно первоначально есть смысл ограничить набор найденного,
при наборе 2групп символов (если чел знает что ищет) набор найденного уже 5-10 позиций это при исходных данных в 30000.
это из практических наблюдений.
Код: sql
1.
2.
3.
4.
SELECT .... FROM T1 WHERE 
F1 LIKE '%blah-blah%' OR
F2 LIKE '%blah-blah%' OR
F3 LIKE '%blah-blah%' OR


тут ты получишь ахинею
Код: sql
1.
2.
3.
4.
SELECT .... FROM T1 WHERE 
F1 LIKE '%blah-blah%' AND
F2 LIKE '%blah-blah%' AND
F3 LIKE '%blah-blah%' AND


так ты получишь искомое
maytonНикаких глаз. Глаза врут. К чорту глаза.
в 5-10 строчках глаз не соврёт - проверено практикой

[quote mayton]Вообще не понял эту бухгалтерию. Почему 2? Почеу 3 ляма?

[quote ]оговорка по Фрейду
реально проверено на таблице в 2 950 000 , поэтому и 2-3 ляма
maytonПри чем здесь это? Что это за метрики? Давайте пока не будем это учитывать. Бесполезная инфа
и к моему предлагаемому интерфейсу не несет никакой пользы.это инфа к сведению
что б было что сравнивать по скорости
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702022
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaпо-моему кто-то кого-то не так понял. когда ты пишешь запрос вида like - бд может быть вынуждена просканировать все записи - это называется full scan если ты ввёл 2 символа и вываливаешь всё что нашёл этот like- этот объём никому не нужен.
поэтому и не смысла делать фулскан, есть смысл остановить его при нахождении 5-10 записей и добавить что выбрано очень много -добавьте критерии для фильтра.
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702027
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСделай. Интерфейс видел? Кодь.у меня сделано для веб без всяких интерфейсов :)
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702029
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятут ты получишь ахинею
Код: sql
1.
2.
3.
4.
SELECT .... FROM T1 WHERE 
F1 LIKE '%blah-blah%' AND
F2 LIKE '%blah-blah%' AND
F3 LIKE '%blah-blah%' AND


так ты получишь искомое

Ты понимаешь что такое поиск like a Google?
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702030
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonСделай. Интерфейс видел? Кодь.у меня сделано для веб без всяких интерфейсов :)
Покеж.
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702035
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы понимаешь что такое поиск like a Google?
а ты что хочешь найти?
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702038
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпоэтому и не смысла делать фулскан, есть смысл остановить его
Это как? Слезно попросить ДБ?
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702039
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПокеж.дай набор данных сделаю демку.

или могу выложть кусок кода который обрабатывает на сервере строку типа ыва ннн вааыв
преобразует её для динамического запроса в хранимке и по ответу строит таблицу для выподающего списка
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702040
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никЭто как? Слезно попросить ДБ?не помню как в mssql, но в mysql есть Limit n
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702045
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonТы понимаешь что такое поиск like a Google?
а ты что хочешь найти?
Это неважно
Твой второй запрос не будет работать.
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702048
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы понимаешь что такое поиск like a Google?для того чтоб найти что-то в одном поле надо так
Код: sql
1.
2.
3.
4.
SELECT .... FROM T1 WHERE 
F1 LIKE '%blah-blah%' AND
F1 LIKE '%blah-укh%' AND
F1 LIKE '%blah-bфывlah%' 


что б в нескольких полях

Код: sql
1.
2.
3.
4.
SELECT .... FROM T1 WHERE 
concat(F1,F2,F3) LIKE '%blah-blah%' AND
concat(F1,F2,F3) LIKE '%blah-укh%' AND
concat(F1,F2,F3) LIKE '%blah-bфывlah%' 
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702050
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТвой второй запрос не будет работать.твой найдёт кучу лишнего
ищут то где есть и первый параметр и второй и третий
И , а не ИЛИ
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702054
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonТы понимаешь что такое поиск like a Google?для того чтоб найти что-то в одном поле надо так
Код: sql
1.
2.
3.
4.
SELECT .... FROM T1 WHERE 
F1 LIKE '%blah-blah%' AND
F1 LIKE '%blah-укh%' AND
F1 LIKE '%blah-bфывlah%' 


Это треш какой-то. Ты даже не представляешь как мне легко опровергать твои тезисы.
Нет честное слово. У тебя было it-образование? Ну ОК. Ладно. Допустим ты - бывший оператор ПК.

Во первых по заданию метод lookup(String text) имеет один аргумент. Это понятно?

Тоесть text="%blah-blah%". И других выражений не будет. Вроде это было очевидно из моего примера.

В таблице могут быть не-текстовые поля. Числовые. Тоесть если я ищу СТРОКОВЫЙ символ
через LIKE в числовом поле. То это всегда FALSE. Тождественный FALSE. Инвариант.

И если F1 - числовое поле (что не запрещено по моему первому тезису) то твой запрос
всегда будет возвращать 0 строк потому что пересечение FALSE и других предикатов даст
тождественный FALSE.

Мне не надо искать примеры с данными. Ферштейн?

А гугло-поиск - это найти что-то везде. Во всех документах и всех полях искомой системы где мы ищем.

Метафора такая. Ну как в текстовом файле. Ферштейн?
...
Рейтинг: 0 / 0
JDBC необязательные параметры
    #39702055
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonТвой второй запрос не будет работать.твой найдёт кучу лишнего
ищут то где есть и первый параметр и второй и третий
И , а не ИЛИ
Уже ответил выше.
...
Рейтинг: 0 / 0
25 сообщений из 158, страница 4 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBC необязательные параметры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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