У меня сотрудники ведут несколько файлов (у каждого сотрудника свой файл), я сделал себе сводный файл, который через ODBC подключение SQL запросом транспонирует и объединяет данные со всех файлов. Всего подключенных файла 4.
Так вот нехитрыми манипуляциями сделал запрос длиной 18 746 символов без пробелов/абзацев и т.д. (а с последними вообще 20 551 символов), т.е. почти по 5000 строк на одного сотрудника. Все это сохранил в *.odc файл и пользуюсь. Скорость работы на уровне. Строка подключения:
И тут стало интересно - а какова максимальная длина SQL запроса? Ведь с каждым сотрудником запрос будет увеличиваться на 5000 символов... Как эта система переварит 100000 символов или более?
vetrintsev написал: т.е. почти по 5000 строк на одного сотрудника.. Скорость работы на уровне.
?
Цитата
vetrintsev написал: Ведь с каждым сотрудником запрос будет увеличиваться на 5000 символов...
тема Очень интересная, но вопрос ТСа сформулирован сумбурно... так и не поняла, что он имеет ввиду - строки результата запроса или длину самой SQL-команды... поднимаю ветку, чтобы уточнить у тех, кто сталкивался, - есть ли ограничения на Длину SQL-команды в xl (ms query или в макросах) ? и какое? заранее спасибо... а то имею sql-запрос~5000 длстр... и думаю, разбираться ли, почему он не работает (точнее в RecordSet попадает 0 RecordCount) ИЛИ он вообще по техническим причинам не заработает никогда? - из-за его длины?...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Насколько помню, для таких вещей ограничение идет не по кол-ву символов в запросе, а по размеру файла, в котором он записан. Для MySQL допустимо до 4Гб, хотя по умолчанию обычно установлено меньше(кажись около 250 Мб). Да и сложно такой запрос представить. В общем 100000 символов должно работать на ура, хотя я бы все же ратовал за оптимизацию таких запросов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ограничения SQL команды обычно упирается не в ее длину, а из чего она состоит, т.е. в максимальное количество полей, количество объединений, количество группировок и т.д. Да, и еще у каждого диалекта языка SQL свои ограничения.
The_Prist написал: а по размеру файла, в котором он записан.
однозначно идёт по размеру отведённой для бд памяти, видимо... потому что, если в ходе выполнения запроса, размер данных из подзапросов, например, превышает 2гб (для Access) - предельно возможный размер бд - то выдаст ошибку... ошибка Переполнения
Цитата
PowerBoy написал: упирается ... т.е. в максимальное количество полей, количество объединений, количество группировок и т.д.
видимо, это оно и есть: если более - то ошибка Переполнения... то есть допустимость и обрабатываемость SQL-конструкции зависит от того хватит ли памяти на проведение всех подзапросов и вывода итога запроса... (памяти отведённой системой или софтом для работы с бд) ... PowerBoy речь шла о запросе к 2м файлам xl. ~3000 строк каждая таблицы из 2х - на выходе 20-30 строк... вытягивая только нужное изначально (отсекая ненужное через WHERE и JOIN), потом перекруты для визуально приемлемого вывода и одно простейшее мат. вычисление по каждой из вытянутых строк... p.s. а теперь самое главное - мой запрос длиной SQL-строки в 4883 символов - Сработал!! - просто поправила его ...
Цитата
PowerBoy написал: Ограничения SQL команды обычно упирается не в ее длину
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)