Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Можете объяснить? :)  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Добрый день!

У меня есть несколько вопросов:

1) у меня подключены 2 базы можно написать select запрос сделать из одной базы, а insert сделать в другую базу
2) я делаю запрос "select top 10" потом пишу запрос и он сначала пробегает по всему запросу а потом выбирает первые 10
3) у меня запросы обрабатываются 10 минут записей окола 30 000 000, мне добавить оперативкий или процессор :)

спасибо!
22 июн 11, 15:03    [10854837]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
кириллk
1) у меня подключены 2 базы можно написать select запрос сделать из одной базы, а insert сделать в другую базу
Можно.
кириллk
2) я делаю запрос "select top 10" потом пишу запрос и он сначала пробегает по всему запросу а потом выбирает первые 10
Логически top работает в самом конце, после сортировки.
кириллk
3) у меня запросы обрабатываются 10 минут записей окола 30 000 000, мне добавить оперативкий или процессор :)
Программиста добавить надо.
22 июн 11, 15:07    [10854886]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
кириллk
Добрый день!

У меня есть несколько вопросов:

1) у меня подключены 2 базы можно написать select запрос сделать из одной базы, а insert сделать в другую базу
2) я делаю запрос "select top 10" потом пишу запрос и он сначала пробегает по всему запросу а потом выбирает первые 10
3) у меня запросы обрабатываются 10 минут записей окола 30 000 000, мне добавить оперативкий или процессор :)

спасибо!

1) можно, если все на одном сервере, просто указывайте явно имя базы когда работаете с таблицей
2) т.е вы пишете два запроса? или это один запрос но вы рассказываете нам как его сервер обрабатывает? если второе смотите в план - там видно что в каком порядке. если первое - уточните вопрос.
3) для начала показать запросы, индексы и таблицы.
22 июн 11, 15:07    [10854889]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
1.
INSERT INTO DbName.SchemaName.TableName(...)
SELECT ... FROM DbName.SchemaName.TableName;

2.
Если есть ORDER BY, то вернутся 10 записей из отсортированного набора данных (дольше), иначе 10 произвольных (побыстрее будет)

3. Переписать запросы. Если у вас select * from ТаблицаС30МлнЗаписей, то тут проц и память мало помогут )
22 июн 11, 15:09    [10854920]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
кириллk
Member

Откуда:
Сообщений: 1062
понял спасибо!

А есть ли где нить информация, чтобы глуппые вопросы не задавал? :)

или только
http://msdn.microsoft.com/ru-ru/library
22 июн 11, 15:12    [10854956]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
кириллk,

на этом ресурсе в частности полно информации. есть FAQ, поиск и публикации. Наверняка найдете все что нужно!
22 июн 11, 15:16    [10855008]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
кириллk
Member

Откуда:
Сообщений: 1062
SomewhereSomehow,

a если у меня запрос типа

select from table

lieft oulter join table 2

lieft oulter join table 3

lieft oulter join table 4

where tabel = 2011 01 01

group by table



sql сверху вниз начинает считать?
22 июн 11, 17:14    [10856668]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
кириллk
SomewhereSomehow,

a если у меня запрос типа

select from table

lieft oulter join table 2

lieft oulter join table 3

lieft oulter join table 4

where tabel = 2011 01 01

group by table



sql сверху вниз начинает считать?
Как излагает!
Если Вы о порядке JOINов, то сервер обычно сам подбирает оптимальный (не всегда удачно).
Про остальное лучше прочитать здесь
22 июн 11, 17:18    [10856708]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
кириллk
Member

Откуда:
Сообщений: 1062
iap,

Следующие действия демонстрируют порядок обработки инструкции SELECT.

FROM

ON

JOIN

WHERE

GROUP BY

WITH CUBE или WITH ROLLUP

HAVING

SELECT

DISTINCT

ORDER BY

TOP

то что надо )
22 июн 11, 17:21    [10856741]     Ответить | Цитировать Сообщить модератору
 Re: Можете объяснить? :)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
кириллk
SomewhereSomehow,

a если у меня запрос типа

select from table

lieft oulter join table 2

lieft oulter join table 3

lieft oulter join table 4

where tabel = 2011 01 01

group by table



sql сверху вниз начинает считать?
По диагонали крест-накрест. Инфа 100%. С синтаксически неверными запросами сервер именно так поступает.
22 июн 11, 17:32    [10856844]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить