Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
5 / 5 / 4
Регистрация: 24.03.2010
Сообщений: 232
Записей в блоге: 1
1

Что быстрее, курсор или While?

14.02.2016, 00:58. Просмотров 2114. Ответов 4
Метки нет (Все метки)


Всем привет!

Интересует вопрос, что быстрее в плане исполнения: Курсор или While?

И зависит ли преимущество одного над другим в зависимости об объёма перебираемых строк в таблице ?

И второй вопрос: перебирать более 500 000 строк лучше всего во временной таблице или в физической?

Всё таки, мне кажется, временная - это считай оперативная память, а физическое - это каждый раз обращение к жесткому диску.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2016, 00:58
Ответы с готовыми решениями:

Что быстрее WHERE x=1 или WHERE x IN (1)?
Есть какие-нибудь сведения насчет данных команд WHERE x=1 или WHERE x IN (1)? Вопрос в том, что...

Оптимизация кода, структуры базы, или что еще можно сделать что бы быстрее работало!?
Всем привет! Господа, выручайте. Не пойму как еще оптимизировать... Есть куча связанных таблиц....

Что быстрее: i++ или ++i ?
Только что прочитала в интернете, что префиксный итератор быстрее, чем постфиксный. Так ли это?...

Что быстрее 7 или XP?
Есть нетбук Acer Aspire One D257 с параметрами: Производитель:...

4
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
14.02.2016, 01:20 2
Интересует вопрос, что быстрее в плане исполнения: Курсор или While?
Как вы себе представляете использование курсора без цикла while?
Всё таки, мне кажется, временная - это считай оперативная память, а физическое - это каждый раз обращение к жесткому диску.
Временные таблицы, как и постоянные, хранятся на диске. Только сервер помещает их в специальную базу tempdb. Даже табличные переменные хранятся в этой базе, а не в памяти, насколько я знаю.

Как правило базу tempdb администратор старается поместить на как можно более быстрый жесткий диск, например SSD. Это дает существенный выигрыш в производительности.
1
Респект C++
23 / 33 / 14
Регистрация: 11.06.2015
Сообщений: 384
14.02.2016, 01:20 3
Я while всегда использую
1
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
14.02.2016, 01:31 4
И еще, насколько я знаю Microsoft рекомендует использовать курсоры только там где без них не возможно обойтись. Например, если нужно вызвать хранимую процедуру для каждой записи из некоторой таблицы.

Раньше с помощью курсора было быстрее решать задачи на подобие расчета нарастающего итога, но теперь это можно эффективно делать и запросом, с помощью аналитических функций (sum() с предложением over). Аналитические функции вообще очень важная тема. Рекомендую почитать про lead, lag, row_number и др. На собеседованиях про них любят спрашивать в последнее время. Плохо только то, что в полном объеме они появились лишь в MS SQL 2012.
1
1055 / 713 / 167
Регистрация: 27.11.2009
Сообщений: 2,132
14.02.2016, 13:50 5
Цитата Сообщение от RCF Посмотреть сообщение
перебирать более 500 000 строк лучше всего во временной таблице или в физической?
Лучше всего ничего не "перебирать"!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2016, 13:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Что быстрее - Java или C#
1) C# быстрее Java? 2) C# легче Java? 3) Что лучше подходит для web: Java или C#?

Contains или Count, что быстрее?
Есть DbSet<Countries>. Нужно при добавлении новой страны в DbSet проверить есть ли уже такая. Что...

Что быстрее assembler или c++
Вопрос от новичка. Что будет быстрее по скорости выполнения и на сколько: 1) сложить a+b на C++...

Что быстрее, while или foreach?
Что быстрее , while или foreach?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.