Какова лучшая стратегия, чтобы формулировать консультацию SQL с многообразными WHERE?

Я достаточно начинающий в SQL и вся тема оптимизации консультаций еще у меня остается большой.

У меня есть таблица с какими-то миллионами реестров со следующими полями:

Referencia  Año Direccion   Provincia   Latitud Longitud    Superficie

И я хочу выполнить консультацию просачиваясь по полям:

  • Год
  • Широта
  • Длина
  • Поверхность

Я представляю себе то, что простой SELECT * FROM сцепляя серию условий WHERE не должен быть оптимальный способ выполнять консультацию, так что я осведомляюсь каков, она была бы стратегией, которую было бы нужно продолжать.

Я не знаю, возможно состояло ли идеальное в том, чтобы выполнять предварительную консультацию по поводу поля Провинция и выполнять субконсультацию начиная с результата, или какая дорожка оставаться.

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

Большое спасибо заранее.

Я ИЗДАЮ: База данных, на данный момент, крайне простая (только он состоит из таблицы) и еще я не сделал доказательства на результате, так как я не располагаю полными данными, пока. Возможно, как предлагаете вы, что просто в единственной инструкции с несколькими WHERE + AND функционирует достаточно хорошо.

Я оставляю пример того, какая, пока, таблица (конечно к будущему я буду должен добавлять больше полей).

BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "Catastro" (
    "Referencia"    TEXT,
    "Year"  INTEGER,
    "Direccion" TEXT,
    "Provincia" TEXT,
    "Latitud"   REAL,
    "Longitud"  REAL,
    "Superficie"    REAL
);
INSERT INTO "Catastro" VALUES ('0913904VK4801D0001TI ',1965,'CL GRAN 
VIA','Madrid',40.477869,-3.697409,156.0);
INSERT INTO "Catastro" VALUES ('3208015VK4830G0001AU',1975,'CL SERRANO 
GALVACHE 20
28033 MADRID (MADRID)','Madrid',40.46845291,-3.67382251,140.0);
INSERT INTO "Catastro" VALUES ('1298602VK4719G0001RO',1960,'CL BRAVO MURILLO 
357
28020 MADRID (MADRID)','Madrid',40.45273691,-3.70339183,110.0);
COMMIT;
0
задан 17.03.2019, 14:13
1 ответ

Для больших подмостков ты можешь создавать Г-ndice, группируемый на главном ключе, которого обычно обычно является одним autonumГ©rico identity correlado.

В совместном проживании с этим Г-ndice ты можешь создавать другие Г-ndices, не группируемые на колоннах, которые содержат стоимость вспомогательных подмостков: широта, длина.

porquГ© делать это asГ - я оставляю это тебе ( https://www.sqlshack.com / быть / cual-es-la-diferencia-entre-indices-agrupados-y-no-agrupados-en-sql-server / ) aquГ - для того, чтобы ты прочитал это себе до того, как Эта спала

podrГ, - чтобы состоять та lГіgica достаточным инициалом в том, чтобы он удовлетворил твою проблему.

0
ответ дан 02.12.2019, 05:33
  • 1
    Мало informació n, относительно которого консультируется пользователь, верю я. Está хорошо говорить ему, что он должен создавать индексы, но скажи ему, что relació n он имеет создание индекса несмотря на то, что оптимизирует консультацию. Есть комментарии более длинные, чем твой ответ, и которые отвечают лучше на вопрос. Издай или удали для того, чтобы он уподобился тому, что обычно считают ответом vá lida. Приветствие. – Jose Manuel Morales 22.03.2019, 15:37