Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выполняет SQL Server запросы / 10 сообщений из 10, страница 1 из 1
24.12.2001, 17:29
    #32019713
vl80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполняет SQL Server запросы
У меня есть задача: конвертировать таблицы в текстовых файлах в таблицы 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
24.12.2001, 17:39
    #32019714
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполняет SQL Server запросы
1. Это нормально. Он кэширует данные.
2. Используйте insert/update с select подзапросами.
3. Используйте индексы.
...
Рейтинг: 0 / 0
24.12.2001, 19:34
    #32019717
vl80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполняет SQL Server запросы
А можно ли отключить это кэширование?

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


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

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

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

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


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

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

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

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

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

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

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

Moth.
...
Рейтинг: 0 / 0
25.12.2001, 19:36
    #32019803
vl80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполняет SQL Server запросы
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
26.12.2001, 05:47
    #32019814
SergD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выполняет SQL Server запросы
Мне кажется, самым быстрым способом в таком случае будет действительно сначала в промежуточные таблицы на сервер(как писал Moth) с помощью DTS пакета, он умеет работать не только с разделителями колонок но и как вариант с фиксированной длинной, ну а далее делать разбор на SQLе.
С уважением, Сергей.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выполняет SQL Server запросы / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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