AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.04.2006, 13:56   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sese Посмотреть сообщение
While select * from Table1
where Table1.Field1 > 0
{
Variable1 += Table1.Field1;
}
Да, будет работать быстрее.
Даже за счет того, что по сети передается меньше данных.

За счет чего запрос с where будет быстрее:
1. За счет того, что SQL-сервер прочитает меньше данных с диска (он бывает достаточно сообразителен)
2. За счет того, что SQL-сервер передаст меньший объем данных Аксапте (обычно передача идет по сравнительно медленной сети)
3. За счет того, что Аксапта выполнит меньшее число скомпилированный в p-код инструкций (p-код выполняетсяпо медленно по сравнению с ассемблерными инструкциям SQL-сервера)

В самом худшем случае время выполнения запроса с where будет таким же.
Это для простых запросов.


Надо помнить и об обратной стороне.
Очень сложные запросы могут выполняться медленнее, нежели несколько простых. Даже в том, случае, если сложный запрос возвращает меньше данных.
Дело в том, что запрос на SQL-сервер передается как текстовая строка.
И SQL-сервер каждый раз выполняет компиляцию и оптимизацию запроса.
Время компиляции сложного запроса может быть очень велико (да, там есть свои механизмы для уменьшения времени компиляции).

Подробнее читайте BOL (book online) и материалы по SQL-сервер.
__________________
полезное на axForum, github, vk, coub.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:35.