powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выполняет SQL Server запросы
10 сообщений из 10, страница 1 из 1
Как выполняет SQL Server запросы
    #32019713
vl80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть задача: конвертировать таблицы в текстовых файлах в таблицы SQL Server'а.
Эти тестовый файлы достаточно большие (2-8 Mb) и их 14*3 штук. При этом данные в файлах и таблицах SQL Server'а могут повторяться (то есть в тектовом файле измененная запись базы).

Написал программу, она конвертирует эти файлы, но, при этом, ужасно тормозит.
При обработке каждого файла делается 5-7 тыс insert'ов или update'ов, а перед этим еще и дофига select'ов (для определения того, что делать: обновлять или вставлять). Но что самое главное, SQL Server начинает пожирать память и доходит до 255 Mb (он что там делает-то?).

В этой связи несколько вопросов:
1. Почему растет SQL Server
2. Как написать такой запрос, чтобы не делать сначала select, потом insert или update

Заранее спасибо.
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019714
MadDog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Это нормально. Он кэширует данные.
2. Используйте insert/update с select подзапросами.
3. Используйте индексы.
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019717
vl80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно ли отключить это кэширование?

Да, еще забыл вот что, после того, как программа отработала, SQL Server продолжает занимать 255 Mb. Это тоже нормально? Он выгружать себя из памяти никогда не будет?
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019718
MadDog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем? Ааа... Понял - пока идет загрузка данных, погонять в Quake!


Можно ограничить количество памяти используемое SQL Server. Помоему в EM - правая кнопка -> Свойства-> Память.
Хотя, если я правильно понял, ее у Вас и так не густо - всего 256.

PS
Утилиту bcp не пробовали?
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019721
vl80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, памяти то мне не жалко ее пока хватает, просто хотелось узнать (а больше 255 SQL Server никогда и не занимал, наверное там такой предел стоит, завтра посмотрю).

А утилиту bcp или bulk insert не использовал, потому что тектовые файлы разные. А так написал программу, а она по шаблону каждый файл и разбирает.

А вообще, как еще можно увеличить скорость исполнения запросов?


Спасибо за ответы.
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019722
vl80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, можно ли использовать bcp или bulk insert, если нужно не только добавлять новые данные, но и обновлять старые. И опять же еще кажется, что bulk insert не реагирует на хранимые процедуры.
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019724
DTS Wizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Че это за хрень тута у Вас творится, господа?

Так ясно... опять страдаем! :\

Вопрос 1-й (и самый главный): Что за SQL Server?
Вопрос 2-й: С DTS(Data Transformation Services) и OLEDB provider'ом for ODBC или ODBC driver'ом
for Text files знакомы? Советую познакомиться, а также со моим родным братишкой DTS Import Wizard'ом...
Вопрос 3-й: А что за формат текстовых файлов?

Благодарю за внимание
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019725
Moth.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что значит жутко тормозит.
Я год назад гонял на 7.0 100 мб каждое утро. Переходили со старой базы на новой. Приезжал к 7 в 9 уже все работали /*тестировали новую базу.*/

PC 733/256 RAM/ HDD 20IBM DTLA IDE + IWILL RAID - но просто как переходник.

Да проц грузился на 80 - 95 %, но при этом я спокойно запускал проверочки и прочие процедурки. И не тормозило ничего.

Общий механизм такой. Все тащим во временую базу на сервер.
А от туда в цикле по записям. И все кузяво.

Moth.
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019803
vl80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To DTS Wizard.
Вопрос 1. MS SQL Server 7.0
Вопрос 2. Вроде, если я не путаю, в DTS, в bulk insert используется разделитель между столбцами, в моем же случае он не задан точно, то есть задана длина поля в символах, причем расположены данные в каждом поле хрен знает как, например (вместо пробелов, которые есть в файле, я здесь напишу "_", а то что-то он пропускаются в сообщении):

a (20 символов) b(15 символов) c(10 символов)
---------------------------------------------------------------------
aaa_________________ _____________bb cc________
aaaaa_______________ ____bbbb_______ ccccc_____
_________aaaaaaaaaaa bbbbbbbbbbbbbbb _______ccc
Вопрос 3. Что ты имеешь в виду?

Еще можно ли с помощью этих утилит не только добавлять данные, но и обновлять уже имеющиеся?

To Moth.
Тормозит в смысле скорости (как я понял это не тормозит, просто до этого я думал, что все это несколько шустрее работает).

Если я в чем-то ошибаюсь, напишите пожалуйста, или напишите как можно сделать лучше.
...
Рейтинг: 0 / 0
Как выполняет SQL Server запросы
    #32019814
SergD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется, самым быстрым способом в таком случае будет действительно сначала в промежуточные таблицы на сервер(как писал Moth) с помощью DTS пакета, он умеет работать не только с разделителями колонок но и как вариант с фиксированной длинной, ну а далее делать разбор на SQLе.
С уважением, Сергей.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выполняет SQL Server запросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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