Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Добрый день. Подскажите как можно определить (хоть бы приблизительно) время выполнения операции выборки с условием из таблицы с 1 млн записями. К пример есть порядка миллиона записей и необходимо выбрать ожидаемо до 20-30 записей, удовлетворяющих критерию условия.
2 дек 11, 17:55    [11698173]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Я понимаю, что многое зависит от типа колонки, количества колонок в условии и т.д. Но можно хоть примерно сказать время выполнения запроса вложится в миллисекундты, кило, микро, или секунды?!
2 дек 11, 17:57    [11698181]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Подозреваю, что вопрос возник потому что данные Вы выбираете не в SSMS, а каким-то приложением
Чтобы посмотреть что именно (и сколько именно) выполняется, рекомендую SQL Profiler
2 дек 11, 17:58    [11698185]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
кроме всего многое зависит от конфигурации серверной машины, sql server инстанса, базы, выполнятеся это запрос на том же сервере локально или на удаленном клиенте и т.д..

Т.е. сказать, что у меня это работает 1 минуту и у вас будет так же - в общем случае нельзя.
2 дек 11, 18:02    [11698211]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Что, действительно порядка 1 минуты?! А как же Google за полсекунды мне выдает сотни тысяц записей с сылками на сайты, да еще и сниппеты показывает???
2 дек 11, 18:08    [11698254]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
avolik
Что, действительно порядка 1 минуты?! А как же Google за полсекунды мне выдает сотни тысяц записей с сылками на сайты, да еще и сниппеты показывает???


что значит "выдаёт"? вы видите сразу все эти сотни тысяч записей через полсекунды?
ну и если на то пошло, вряд ли ваш сервер по мощности хотя бы примерно сопоставим с гуглом
2 дек 11, 18:20    [11698365]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Glory
Member

Откуда:
Сообщений: 104751
avolik
А как же Google за полсекунды мне выдает сотни тысяц записей с сылками на сайты, да еще и сниппеты показывает???

номера с 1 по 100 в нижней части страницы поиска вовсе не говорят о том, что за 0.5 сек было выбрано 100 000 записей
2 дек 11, 18:22    [11698372]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Хорошо, выбрали первых 100 записей. Пейджинг дальше установлен на общее количество страниц поделенных на 10. Хорошо.

Но в базе Гугла то миллиарды записей. Как все-таки он выдает даже первые 10 из всей этой массы за полсекунды? И все же по моему вопросу, очень грубо, правда ли, что из 1 000 000 записей найти 10-20 по условию заберет +-1 минуту времени?
2 дек 11, 18:26    [11698404]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
adv
Member

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

как работает гугл, можно на нём же и найти, только какое отношение это имеет вашему вопросу?

Время выполнения запроса сильно зависит от многих факторов, в том числе и от "типа колонки, количества колонок в условии и т.д". Особенно, "и т.д.", о чём все пытаются намекнуть.

Запустите запрос и посмотрите время выполнения. Это самый точный способ :)


зы. Всё, конечно, зависит от задачи, но минута для миллиона - очень долго.
2 дек 11, 18:56    [11698560]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
adv
avolik,

зы. Всё, конечно, зависит от задачи, но минута для миллиона - очень долго.


вот это я и хотел услышать. Если запрос будет обрабатываться 5 секунд, к примеру, то это очень хорошо в моем случае.
Спасибо.
2 дек 11, 18:59    [11698574]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
adv
Member

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

5 секунд - тоже долго :)
2 дек 11, 19:01    [11698599]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Для миллиона 5 секунд долго?! Для меня 5 секунд приемлемо, но если Вы говорите, что это тоже долго, тогда меня это еще больше устраивает. Дело в том, что я не могу решить как организовать хранение в таблице:
- много записей с конкретной информацией (для каждой новой информации новая запись - растет количество строк)
- меньше записей (каждая новая информация дописывается в конец к уже существующей - растет размер данных в записи)

Долго объяснять почему допустимо напихивать одну и ту же запись, а не создавать новые строки.

Кроме того, тут не ясно как на клиенте: выбирать все требуемые записи, или выбрать одну и распарсить на клиенте.

Понимаю, что правильнее создавать новые записи, но...

Ну вот смотрите.

Мне необходимо вести учет событий и мероприятий (дни рождения, юбилеи, корпоративные выезды и т.д.).

В связи с отчетностью события могут проходить ежедневно, или через день-два. К примеру 4 раза в неделю.

Можно для каждого события создавать отдельную запись в таблице БД, а можно на каждый месяц иметь одну запись и набивать в неё каждое новое событие. Следующий месяц - новая запись.

Если для каждого события создавать отдельную запись, то за месяц примерно: 16 записей. В год: 150 записей. А если команд (группы людей у которых ведется учет событий, мероприятий) 10 000, то все умножим на 10 000 и получим за год плюс 1 500 000 записей. А за 10 лет 15 лимонов!

А если мы будем создавать новую запись лишь с новым месяцем и напихивать в неё новые мероприятия, то за месяц: 1 запись. В год: 12 записей. 10 000 команд - 120 000 записей. То получим немногим более 120-150 тысяч записей, что в 10 раз меньше с первым вариантом.

В итоге любой запрос к БД будет выполняться не более четверти секунды?!

Подскажите неискушенному студенту как быть.
2 дек 11, 19:28    [11698717]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Glory
Member

Откуда:
Сообщений: 104751
avolik
Подскажите неискушенному студенту как быть.

Структуру базы проектируют так, чтобы нужные запросы на них выполнялись с наилучшим планом
А не пытаются прогнозировать, как произвольный запрос будет выполняться на произвольной таблице
2 дек 11, 19:58    [11698864]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Откуда мне знать как проектируют. Я сам пока стьюдент, но благодаря вашей помощи почуть-чуть учимся уму-разуму.
2 дек 11, 20:32    [11699025]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Glory
Member

Откуда:
Сообщений: 104751
avolik
Откуда мне знать как проектируют. Я сам пока стьюдент, но благодаря вашей помощи почуть-чуть учимся уму-разуму.

Хочу собрать фотонный двигатель, но таблицы умножения не знаю ?
2 дек 11, 20:41    [11699064]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Могу помочь с энергетическими переходами электронов в плазме - как раз для фотонного двигателя квантонна. Вы мне SQL знания, я Вам теорию по фотонным двигателям?!
2 дек 11, 20:49    [11699106]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Glory
Member

Откуда:
Сообщений: 104751
avolik
Вы мне SQL знания, я Вам теорию по фотонным двигателям?!

Сначала выясняется какие запросы будут выполняться
Потом для их оптимального выполнения создаются нужные объекты - таблицы, поля, индексы и тп
Потом покупается оборудование
2 дек 11, 21:04    [11699199]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Спасибо!
2 дек 11, 21:13    [11699259]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
avolik, в соседней теме обсуждается проблема неполучения результата из 1000000 строк вообще
а стоит создатьузнать, что нужный индекс есть и заменить во where сложение в одной части условия
на вычитание в другой, как этот же запрос начинает выполняться за 5 секунд и это на ноутбуке с
процессором intel t4200 и 2гб оперативной памяти
2 дек 11, 22:18    [11699593]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
andrey odegov
avolik, в соседней теме обсуждается проблема неполучения результата из 1000000 строк вообще
а стоит создатьузнать, что нужный индекс есть и заменить во where сложение в одной части условия
на вычитание в другой, как этот же запрос начинает выполняться за 5 секунд и это на ноутбуке с
процессором intel t4200 и 2гб оперативной памяти


стоп-стоп! Вот с этого места по-подробнее, пожалуйста! Очень интересно.
2 дек 11, 23:04    [11699790]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
avolik
Для миллиона 5 секунд долго?! Для меня 5 секунд приемлемо, но если Вы говорите, что это тоже долго, тогда меня это еще больше устраивает.
Выборка из милиона записей 30-ти должна занимать не более милисекунды для классической модели OLTP

Но для вашей базы и ваших запросов время может быть и другим.

Самый медленный вариант - это сканирование таблицы, его легко просчитать.

Делите объём таблицы на пропускную спомобность памяти (если таблица помещается в кеш) или диска (если не помещается), ну и с запасом в несколько раз (если в памяти)
Таблица в милион записей по несколько десятков байт далжна сканироваться в памяти не больше секунды.
avolik
Дело в том, что я не могу решить как организовать хранение в таблице:
- много записей с конкретной информацией (для каждой новой информации новая запись - растет количество строк)
- меньше записей (каждая новая информация дописывается в конец к уже существующей - растет размер данных в записи)
Сходите в "проектирование", спросите.

Исходите из того, что модель данных должна отражать бизнес-логику, это главное, а не "много записей - мало записей"
2 дек 11, 23:55    [11699978]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
andrey odegov
avolik, в соседней теме обсуждается проблема неполучения результата из 1000000 строк вообще
Вы чуть ошиблись - там не 1000000 строк, а 4 тысячи милиардов :-) Вот и не дожидаются.
Там же перемножаются 2 таблицы по 2 млн строк без индексов.
2 дек 11, 23:58    [11699987]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
avolik
Member

Откуда:
Сообщений: 222
Какое проектирование? Я студент и на меня повесили разработать сайтец для университетских крыс канцелярских по учету и администрированию всего, в том числе событий. Сам как решу так и будет. Но как решать то? Хочется по уму делать, а как оно по уму ума не приложу.
3 дек 11, 01:31    [11700151]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Glory
Member

Откуда:
Сообщений: 104751
avolik
Какое проектирование? Я студент и на меня повесили разработать сайтец для университетских крыс канцелярских по учету и администрированию всего, в том числе событий. Сам как решу так и будет. Но как решать то? Хочется по уму делать, а как оно по уму ума не приложу.

Ну так сляпайте что нибудь
Зачем крысам суперпроизводительность ?
3 дек 11, 11:33    [11700416]     Ответить | Цитировать Сообщить модератору
 Re: Время выборки в таблице из 1 000 000 записей (строк)  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
avolik
Какое проектирование? Я студент и на меня повесили разработать сайтец для университетских крыс канцелярских по учету и администрированию всего, в том числе событий. Сам как решу так и будет. Но как решать то? Хочется по уму делать, а как оно по уму ума не приложу.

Ну так сляпайте что нибудь
Зачем крысам суперпроизводительность ?


да, а еще интересно откуда у "крыс" наберется 1 млн записей
3 дек 11, 12:16    [11700497]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить