Запитання з тегом «query-performance»

Питання щодо підвищення продуктивності та / або ефективності запитів до бази даних.

4
Чи можна збільшити ефективність запитів на вузькій таблиці з мільйонами рядків?
У мене є запит, який зараз займає в середньому 2500 мс для завершення. Моя таблиця дуже вузька, але є 44 мільйони рядків. Які варіанти я маю для підвищення продуктивності, чи це так добре, наскільки це отримується? Запит SELECT TOP 1000 * FROM [CIA_WIZ].[dbo].[Heartbeats] WHERE [DateEntered] BETWEEN '2011-08-30' and '2011-08-31'; Стіл …

5
Поліпшення продуктивності sys.dm_db_index_physical_stats
Під час роботи з технічного обслуговування я намагаюся отримати список фрагментованих індексів. Але запит надзвичайно повільний і його виконання займає 30 хвилин . Я думаю, це пов'язано з віддаленим скануванням на sys.dm_db_index_physical_stats. Чи є спосіб прискорити наступний запит: SELECT OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS TableIndexName FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, …

2
Чому запит запускається повільніше у Збереженій процедурі, ніж у вікні Запит?
У мене складний запит, який працює за 2 секунди у вікні запиту, але приблизно 5 хвилин як збережена процедура. Чому запуск такої кількості часу триває як збережена процедура? Ось як виглядає мій запит. Він займає конкретний набір записів (ідентифікований @idі @createdDate) та конкретний часовий проміжок (1 рік, починаючи з @startDate) …

2
Який індекс використовувати з великою кількістю повторюваних значень?
Зробимо кілька припущень: У мене є таблиця, яка виглядає приблизно так: a | b ---+--- a | -1 a | 17 ... a | 21 c | 17 c | -3 ... c | 22 Факти про мій набір: Розмір всієї таблиці становить ~ 10 10 рядків. У мене ~ …

1
Оптимізація великого запиту до бази даних (25+ мільйонів рядків, використовуючи max () та GROUP BY)
Я використовую Postgres 9.3.5, і у мене є велика таблиця в базі даних, на даний момент вона має понад 25 мільйонів рядків, і вона, як правило, швидко збільшується. Я намагаюся вибрати конкретні рядки (усі unit_idз найновішими unit_timestampдля кожного з них) простим запитом, наприклад: SELECT unit_id, max(unit_timestamp) AS latest_timestamp FROM all_units …

1
Порівняння двох запитів у SQL Server 2012
Я порівнюю два запити в SQL Server 2012. Мета полягає у використанні всієї відповідної інформації, доступної в оптимізаторі запитів, при виборі найкращого запиту. Обидва запити дають однакові результати; максимальна кількість замовлень для всіх клієнтів. Очищення пулу буфера було виконано перед виконанням кожного запиту за допомогою FREEPROCCACHE та DROPCLEANBUFFERS Використовуючи інформацію, …

3
Що отримується з диска під час запиту?
Досить просте запитання, напевно, десь відповіли, але я не можу сформувати правильне пошукове запитання для Google ... Чи впливає кількість стовпців у певній таблиці на ефективність запиту під час запитів у підмножині цієї таблиці? Наприклад, якщо таблиця Foo має 20 стовпців, але мій запит вибирає лише 5 з цих стовпців, …

3
Чому вибір усіх отриманих стовпців цього запиту швидший, ніж вибір одного стовпця, який мене цікавить?
У мене є запит, коли використання select *не тільки набагато менше читає, але й використовує значно менший час процесора, ніж використання select c.Foo. Це запит: select top 1000 c.ID from ATable a join BTable b on b.OrderKey = a.OrderKey and b.ClientId = a.ClientId join CTable c on c.OrderId = b.OrderId …

2
Проблема оцінки кардинальності при внутрішньому з'єднанні
Я намагаюся зрозуміти, чому оцінка рядків настільки жахливо неправильна, ось мій випадок: Просте приєднання - використання SQL Server 2016 sp2 (та сама проблема на sp1), dbcompatiblity = 130. select Amount_TransactionCurrency_id, CurrencyShareds.id from CurrencyShareds INNER JOIN annexes ON Amount_TransactionCurrency_id = CurrencyShareds.Id option (QUERYTRACEON 3604, QUERYTRACEON 2363); SQL оцінює 1 рядок, тоді …

4
Як я можу перетворити перші 100 мільйонів додатних цілих чисел у рядки?
Це трохи відхилення від реальної проблеми. Якщо надання контексту допомагає, генерування цих даних може бути корисним для тестування продуктивності способів обробки рядків, для генерування рядків, яким потрібно виконати певну операцію до них у курсорі, або для створення унікальних, анонімних замін імен для чутливих даних. Мене просто цікавлять ефективні способи генерування …

2
SELECT TOP 1 завдає шкоди ефективності запитів; чи є доступний dba спосіб подолати це?
У виробничому додатку (C #, розмовляючи зі стандартом SQL Server 2014) наведено нижче запит, який виглядає приблизно так. Більшу частину часу він працює в мілісекундах. Але періодично (за певних значень @Id) це стає гарно і займає хвилину або близько того. Це більше часу, ніж час очікування програми, тому програма не …

3
Чекає високий CXPACKET і LATCH_EX
У мене виникають деякі проблеми з продуктивністю із системою обробки даних, над якою я працюю. Я зібрав статистику очікування від годинної пероїди, яка показує велику кількість подій очікування CXPACKET та LATCH_EX. Система складається з 3-х серверів обробки SQL, які здійснюють багато обчислень та обчислень чисел, а потім подають дані на …

5
Як підказка працює з ROW_NUMBER у SQL сервері?
У мене є Employeeтаблиця з мільйонами записів. У мене є наступний SQL для підключення даних у веб-програмі. Це прекрасно працює. Однак я вважаю проблемою - похідна таблиця tblEmployeeвибирає всі записи в Employeeтаблиці (щоб створити MyRowNumberзначення). Я думаю, це спричиняє вибір усіх записів у Employeeтаблиці. Це дійсно так працює? Або SQL …

5
Чи працює програма провідника SentryOne Plan?
Чи працює програма SentryOne Plan Explorer як рекламована реклама та чи законна вона? Чи є якісь готчі або щось, що потрібно хвилювати? Схоже, це показує гарячий шлях у кольорі, присвоєний кошмару SSMS з точки зору прогнозованого плану виконання. Моє занепокоєння полягає в тому, - чи змінює якісь дані зловмисно чи …

1
Чому вторинний селективний індекс не використовується, коли пункт фільтрує на "value ()"?
Налаштування: create table dbo.T ( ID int identity primary key, XMLDoc xml not null ); insert into dbo.T(XMLDoc) select ( select N.Number for xml path(''), type ) from ( select top(10000) row_number() over(order by (select null)) as Number from sys.columns as c1, sys.columns as c2 ) as N; Зразок XML …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.