Я хотел бы, чтобы оптимизировать мой запрос, я в настоящее время к югу от запроса таблицы, загруженной с последовательностью значений SMALLINT от 0 до 9999.Является ли GENERATE SERIES быстрее, чем SUBQUERY?
ответ
Единственный способ вы можете сказать наверняка, является Попробуй это.
Я провел аналогичные тесты, используя PostgreSQL несколько месяцев назад. Вопрос в том, имеет ли смысл заменять таблицу календаря на generate_series().
В нашем случае стол был быстрее. Но если вы проверите, вы, вероятно, обнаружите, что функция generate_series() становится быстрее в определенном количестве строк. (Это то, что мы нашли, но количество строк было хорошо по сравнению с тем, что мы использовали). Я предполагаю, что в этот момент время, затрачиваемое на создание серии, становится меньше времени, необходимого для считывания индекса и строк диск.
Это предположение, потому что PostpreSQL EXPLAIN ANALYZE не дает вам подробностей о дисковых вводах-выводах.
У меня была очень похожая ситуация, как таблица фактов календаря http://stackoverflow.com/questions/2616119/date-lookup-table-1990-01-012041-12-31 .. Мое положение: у меня есть таблица фактов с только одним маленьким целочисленным (32767) столбцом, содержащим ряд от 0 до 9999, и его индексированный, который выполняет подзапрос NOT IN ко всем числам, которые были нарисованы (2820 номеров) в лотерее Pick-4, m думая, что использование серии генерации происходит быстрее, чем открыть дополнительную таблицу с 10 000 строк? –
Я бы не предполагал, что ваш dbms должен «открыть таблицу». Угадание не очень хорошо масштабируется, особенно с системами управления базами данных. Вот почему все они включают некоторый способ увидеть, что делает оптимизатор запросов. Вы должны * предположить, что каждый запрос NOT IN не сможет использовать индекс. Google «выражающие смещение выражения». 10000 строк не очень много; ваш оптимизатор может выполнить последовательное сканирование в этой таблице, даже если он * может * использовать индекс. –
наш SET EXPLAIN ON - еще одна область, где мы не получаем много объяснений о том, что происходит. Хотя наш оптимизатор запросов основан на затратах, объяснение не говорит нам о таких вещах, как: использование дискового ввода-вывода, использование ЦП, использование сканирования таблицы против индекса и т. Д. Обычно я делаю безопасную загрузку, чтобы минимизировать другие процессы и используйте анализатор производительности диспетчера задач WINDOWS или «sar» UNIX (отчет о системной активности), чтобы узнать, что происходит. Мой прошлый опыт - это подзапрос, который должен сканировать через таблицу, содержащую 10 000 строк, которые оцениваются с помощью NOT IN, что эквивалентно OR, более дорого, чем NOT IN (1,2,3 ...) –
- 1. Является ли `extend` быстрее, чем` + = `?
- 2. Highchart generate array series
- 3. Subquery быстрее, используя функцию
- 4. Transpose generate series date postgresql
- 5. Является ли таблица хэшей быстрее, чем document.getElementById?
- 6. Является ли threadcaching быстрее, чем memcaching?
- 7. Является ли C# быстрее, чем VB.NET?
- 8. Является ли VNC быстрее, чем X11 Tunneling?
- 9. Является ли Task.Run быстрее, чем ThreadPool.QueueUserWorkerItem?
- 10. Является ли `scipy.misc.comb` быстрее, чем однобитовое вычисление?
- 11. Является ли Perl быстрее, чем bash?
- 12. Является ли SqlBulkCopy еще быстрее, чем Dapper?
- 13. Является ли MATLAB быстрее, чем Python?
- 14. Является ли file_get_contents быстрее, чем iframe
- 15. Является ли ListView быстрее, чем GridView?
- 16. Является ли codebehind быстрее, чем встроенный код?
- 17. PHP - Является ли array_map быстрее, чем foreach?
- 18. Является ли C++/CLI быстрее, чем C#
- 19. Является ли DateTime.ParseExact() быстрее, чем DateTime.Parse()
- 20. Является ли strncmp быстрее, чем strcmp
- 21. Является ли COUNT (fld) быстрее, чем COUNT (*)?
- 22. Является ли OnTouchListener быстрее, чем OnClickListener?
- 23. Является ли Jython быстрее, чем Python?
- 24. Является ли MOTODEV быстрее, чем Android-эмулятор?
- 25. Является ли Perl распаковкой() быстрее, чем substr()?
- 26. Является ли RxJS быстрее, чем необходимо?
- 27. Является ли CoreText быстрее, чем Text Kit?
- 28. Является ли неизменным Bitmap быстрее, чем изменчивым?
- 29. Является ли критерием «on» быстрее, чем «где»?
- 30. Является ли этот коррелированный SubQuery правильным
Отметьте его и посмотрите. И какая база данных? –
Это моя собственная база данных. –
Возможно, вы не понимаете вопрос о базе данных. Это SQL Server или Oracle или MySQL или ...? Мы не можем дать вам ответ на производительность без понимания базы данных, на которую написан ваш запрос. –