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

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

2
Найефективніший спосіб отримання діапазонів дат
Який найефективніший спосіб отримати діапазони дат із такою структурою таблиці? create table SomeDateTable ( id int identity(1, 1) not null, StartDate datetime not null, EndDate datetime not null ) go Скажіть, що вам потрібен діапазон і для, StartDateі для EndDate. Іншими словами, якщо StartDateпотрапляє між @StartDateBeginі @StartDateEnd, а EndDateпотрапляє між …

2
Як пришвидшити вибір чітких?
У деяких даних про часовий ряд у мене є простий вибір: SELECT DISTINCT user_id FROM events WHERE project_id = 6 AND time > '2015-01-11 8:00:00' AND time < '2015-02-10 8:00:00'; І це займає 112 секунд. Ось план запитів: http://explain.depesz.com/s/NTyA У моїй програмі потрібно зробити багато різних операцій і вважається таким. …

3
Усуньте оператор пошуку ключів (кластер), який уповільнює продуктивність
Як я можу усунути оператор пошуку ключів (кластерних) у своєму плані виконання? У таблиці tblQuotesвже є кластерний індекс (on QuoteID) і 27 некластеризованих індексів, тому я намагаюся більше не створювати. Я помістив кластерний стовпчик індексу QuoteIDу свій запит, сподіваючись, що це допоможе - але, на жаль, все одно. План виконання …

1
SQL Server - якщо логіка в збереженій процедурі та кеш плану
Стандарт SQL Server 2012 та 2016: Якщо я вкладаю if-elseлогіку в збережену процедуру для виконання однієї з двох гілок коду, залежно від значення параметра, чи двигун кешує останню версію? І якщо при наступному виконанні значення параметра зміниться, чи буде він перекомпільований і повторно кешований збережена процедура , оскільки повинна бути …

1
Поганий підзапит із порівнянням дат
Використовуючи підзапит для пошуку загальної кількості всіх попередніх записів із відповідним полем, продуктивність на столі з жахливими записами на 50 тис. Без підзапиту запит виконується за кілька мілісекунд. З підзапитом час виконання - вище хвилини. Для цього запиту результат повинен: Включіть лише ті записи в заданий діапазон дат. Включіть кількість …

2
Приєднуйтесь до запиту, який займає 11 хвилин для роботи на таблиці 300 000 рядків
Нижче на запит потрібно більше 11 хвилин. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, egw.next_day) AS next_day FROM `tms_emp_badge_card` …

3
Чому мій запит EXISTS виконує сканування індексу замість індексу?
Я працюю над оптимізацією деяких запитів. Для запиту нижче: SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , o.decBCShipFinal , …

1
sp_cursoropen та паралелізм
У мене виникає проблема продуктивності із запитом, який, здається, не можу опустити. Я витягнув запит із визначення курсору. Цей запит займає секунди для виконання SELECT A.JOBTYPE FROM PRODROUTEJOB A WHERE ((A.DATAAREAID=N'IW') AND ((A.CALCTIMEHOURS<>0) AND (A.JOBTYPE<>3))) AND EXISTS (SELECT 'X' FROM PRODROUTE B WHERE ((B.DATAAREAID=N'IW') AND (((((B.PRODID=A.PRODID) AND ((B.PROPERTYID=N'PR1526157') OR (B.PRODID=N'PR1526157'))) …

3
Індекси для SQL запиту з умовою WHERE та GROUP BY
Я намагаюся визначити, які індекси використовувати для запиту SQL з WHEREумовою, а GROUP BYякий зараз працює дуже повільно. Мій запит: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id Наразі таблиця має 32 000 000 рядків. Час виконання запиту значно збільшується, коли …

1
Як співвідноситься предикати предикатів SQL Server?
Під час діагностування запитів SQL Server 2008 R2 з поганою оцінкою кардинальності (незважаючи на просту індексацію, сучасну статистику тощо) і, отже, погані плани запитів, я знайшов статтю про КБ, можливо, пов’язану з цим: ВИПРАВЛЕННЯ: Погана продуктивність при запуску запиту який містить корельовані І предикати в SQL Server 2008 або в …

5
Як оптимізувати дуже повільно SELECT за допомогою лівих приєднань за великими таблицями
Я гуляв, самоосвічувався і шукав рішення годинами, але не пощастило. Тут я знайшов кілька подібних питань, але не цей випадок. Мої таблиці: осіб (~ 10М рядків) атрибути (місцеположення, вік, ...) посилання (M: M) між особами та атрибутами (~ 40М рядків) Повний відвал ~ 280 Мб Ситуація: я намагаюся вибрати всі …

2
Як відслідковувати блокування, яке трапляється менше секунди - SQL Server
Я намагаюся вирішити проблему блокування, яка трапляється менше ніж на секунду. Програма OLTP дуже чутлива і має мати час реакції менше 200 мс для деяких транзакцій відповідно до узгодженої угоди про угоди. У нас виникли деякі проблеми ескалації блокування з новим випуском коду, який нам вдалося вирішити, зменшуючи розмір партії …

2
Масштабування PostgreSQL TRIGGER (s)
Як Postgres запускає механізм масштабу? У нас є велика установка PostgreSQL, і ми намагаємось реалізувати систему на основі подій, використовуючи таблиці журналів та TRIGGER (s). В основному ми хотіли б створити TRIGGER для кожної таблиці, про яку ми хочемо отримувати сповіщення про операцію UPDATE / INSERT / DELETE. Після запуску …

1
НЕ слід уникати IN IN?
Серед деяких розробників SQL Server дуже поширена думка, що NOT INце дуже повільно , і запити повинні бути переписані, щоб вони повертали той же результат, але не використовували "злі" ключові слова. ( приклад ). Чи є до цього правда? Чи є, наприклад, якась відома помилка в SQL Server (яка версія?), …

3
Підвищити ефективність запиту за допомогою IN ()
У мене є такий SQL-запит: SELECT Event.ID, Event.IATA, Device.Name, EventType.Description, Event.Data1, Event.Data2 Event.PLCTimeStamp, Event.EventTypeID FROM Event INNER JOIN EventType ON EventType.ID = Event.EventTypeID INNER JOIN Device ON Device.ID = Event.DeviceID WHERE Event.EventTypeID IN (3, 30, 40, 41, 42, 46, 49, 50) AND Event.PLCTimeStamp BETWEEN '2011-01-28' AND '2011-01-29' AND Event.IATA LIKE …

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