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

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

4
Чи може просторовий індекс допомогти запиту "діапазон - порядок за межами"
Задаючи це питання, спеціально для Postgres, оскільки він має гарний підхід для R-дерева / просторових індексів. У нас є наступна таблиця зі структурою дерева (модель вкладеного набору) слів та їх частотами: lexikon ------- _id integer PRIMARY KEY word text frequency integer lset integer UNIQUE KEY rset integer UNIQUE KEY І …

2
Використання індексованих представлень для агрегатів - занадто добре, щоб бути правдою?
У нас є сховище даних з досить великою кількістю записів (10-20 мільйонів рядків) і часто виконуємо запити, які підраховують записи між певними датами, або рахують записи з певними прапорами, наприклад SELECT f.IsFoo, COUNT(*) AS WidgetCount FROM Widgets AS w JOIN Flags AS f ON f.FlagId = w.FlagId WHERE w.Date >= …

2
Як обробити поганий план запитів, викликаний точною рівністю за типом діапазону?
Я здійснюю оновлення, де мені потрібна точна рівність tstzrangeзмінної. ~ 1М рядків змінено, і запит займає ~ 13 хвилин. Результат EXPLAIN ANALYZEможна побачити тут , а фактичні результати сильно відрізняються від результатів, оцінених планувальником запитів. Проблема полягає в тому, що сканування індексу t_rangeочікує повернення одного рядка. Це, мабуть, пов'язане з …

3
Чи оптимізовано перегляди, коли я додаю до них пункт WHERE?
Чи має значення, якщо ви фільтруєте Погляд всередині або поза ним? Наприклад, чи є різниця між цими двома запитами? SELECT Id FROM MyTable WHERE SomeColumn = 1 Або SELECT Id FROM MyView WHERE SomeColumn = 1 І MyViewвизначається як SELECT Id, SomeColumn FROM MyTable І чи відрізняється відповідь, якщо таблиця-джерело …

1
SQL Server 2014: будь-яке пояснення непослідовної оцінки самостільності кардинальності?
Розглянемо наступний план запитів у SQL Server 2014: У плані запитів самостійне приєднання ar.fId = ar.fIdдає оцінку в 1 рядок. Однак це логічно суперечлива оцінка: arмає 20,608рядки і лише одне чітке значення fId(точно відображено в статистиці). Тому це з'єднання виробляє повний поперечний добуток рядків ( ~424MMрядків), внаслідок чого запит працює …

2
Який найшвидший спосіб вставити велику кількість рядків?
У мене є база даних, де я завантажую файли в таблицю інсценізації, з цієї таблиці постановок у мене є 1-2 приєднання, щоб вирішити деякі зовнішні ключі, а потім вставити ці рядки в підсумкову таблицю (яка має один розділ на місяць). У мене є близько 3,4 мільярда рядків за три місяці …

3
Збережені процедури проти вбудованого SQL
Я знаю, що збережені процедури є більш ефективними через шлях виконання (ніж вбудований sql в додатках). Однак при натисканні я не надто добре знаю, чому саме. Мені хотілося б знати технічні міркування для цього (таким чином, щоб я могла це пояснити комусь пізніше). Хтось може допомогти мені сформулювати гарну відповідь?

1
Індекси: продуктивність від цілого до рядка, якщо кількість вузлів однакове
Я розробляю додаток в Ruby on Rails за допомогою бази даних PostgreSQL (9.4). У моєму випадку використання стовпці в таблицях будуть шукатися дуже часто, оскільки вся точка програми шукає дуже конкретні атрибути на моделі. Наразі я вирішую, чи використовувати integerтип або просто використовувати типовий тип рядка (наприклад character varying(255), типовим …

5
Запит SARGable WHERE для двох стовпців дати
У мене є цікаве питання щодо SARGability. У цьому випадку мова йде про використання присудка на різницю між двома стовпцями дати. Ось налаштування: USE [tempdb] SET NOCOUNT ON IF OBJECT_ID('tempdb..#sargme') IS NOT NULL BEGIN DROP TABLE #sargme END SELECT TOP 1000 IDENTITY (BIGINT, 1,1) AS ID, CAST(DATEADD(DAY, [m].[severity] * -1, …

1
Шукайте, і ви скануєте… на розділених таблицях
Я читав ці статті в PCMag Іціка Бен-Гана : Шукайте та скануйте частину I: коли оптимізатор не оптимізує пошук, і ви повинні сканувати частина II: висхідні клавіші Наразі у мене є проблема "Групований Макс" з усіма нашими розділеними таблицями. Ми використовуємо трюк Itzik Ben-Gan, що надається для отримання максимуму (ID), …

2
LIKE використовує індекс, CHARINDEX ні?
Це питання пов'язане з моїм старим питанням . Наведений нижче запит знадобився від 10 до 15 секунд: SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id] FROM [company].dbo.[customer] WHERE (Charindex('123456789',CAST([company].dbo.[customer].[Phone no] AS VARCHAR(MAX)))>0) У деяких статтях я бачив, що використання CASTта CHARINDEXне буде користі від індексації. Також є деякі статті, які говорять про те, що використання …

1
SQL запит на комбінації без повторення
Мені потрібен запит, який можна використовувати в (або як) функції і отримує всі комбінації з n значень. І мені потрібні всі комбінації довжини k, де k = 1..n. Розширений вибірковий вхід і результат, тому вхід має 3 значення замість 2 - однак кількість вхідних значень може змінюватися від 1 до …

1
Ключі хеш-зонду та залишки
Скажімо, у нас такий запит: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 Якщо припустити, що вищезазначений запит використовує Hash Join і має залишковий, ключ зонда буде col1і залишковий len(a.col1)=10. Але переглядаючи інший приклад, я міг бачити, як зонд, так і залишковий той самий стовпчик. Нижче йде детальна …

2
Чому оператор Concatenation оцінює менше рядків, ніж його введення?
У наведеному нижче фрагменті плану запитів здається очевидним, що оцінка рядка для Concatenationоператора повинна бути ~4.3 billion rowsабо сума оцінок рядків для двох його входів. Однак складається оцінка ~238 million rows, що призводить до неоптимальної Sort/ Stream Aggregateстратегії, яка розсипає сотні ГБ даних на tempdb. Логічно послідовна оцінка в цьому …

4
Поради щодо діагностики "іноді" повільного запиту
У мене зберігається процедура, яка повертає результати з індексованого виду через індекс покриття. Зазвичай вона працює швидко (~ 10 мс), іноді може працювати до 8 секунд. Ось приклад випадкового виконання (зверніть увагу: це не повільне, але текст запиту є однаковим, окрім значення, яке пройшло): declare @p2 dbo.IdentityType insert into @p2 …

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