SQL - улучшитесь НЕ, СУЩЕСТВУЕТ производительность запросов

Kotlin не позволяет указывать универсальные типы без предоставления универсальных типов, если вы не ссылаетесь на не принадлежащий экземпляру класса. (статические внутренние классы, ::class, сопутствующие методы). Поскольку ViewHolder является внутренним классом, его идентичность зависит от точной спецификации его внешнего класса, когда речь идет о самом типе.

Это означает, что вы не можете ссылаться на универсальный ExpandableRecyclerAdapter.ViewHolder, вы должны указать границы, в которых также находится внешний класс. Изменение на ExpandableRecyclerAdapter<T>.ViewHolder должно решить проблему.

15
задан Vladimir Sachek 20 May 2014 в 07:09
поделиться

7 ответов

Удостоверьтесь, что Вы ищете на индексированных столбцах без управления данными в тех столбцах (как подстрока и т.д.)

12
ответ дан 1 December 2019 в 02:10
поделиться
insert into customers 
select * 
from newcustomers 
where customerid not in (select customerid 
                         from customers)

.. может быть более эффективным. Как другие сказали, удостоверьтесь, что у Вас есть индексы на любых полях поиска.

0
ответ дан 1 December 2019 в 02:10
поделиться

Если Вы можете вообще уменьшать свое пространство задач, то Вы получите "кучу" производительности. Действительно ли Вы абсолютно уверены, что каждые из тех строк в той таблице должны быть проверены?

другая вещь, которую Вы могли бы хотеть попробовать, DELETE InsertTable FROM InsertTable INNER JOIN ExistingTable ON <Validation criteria> перед Вашей вставкой. Однако Ваш пробег может варьироваться

0
ответ дан 1 December 2019 в 02:10
поделиться

Первое, что пришло на ум Вы могли попробовать что-то как:

 TRUNCATE temptable
 INSERT INTO temptable ...
 INSERT INTO temptable ... 
 ...
 INSERT INTO realtable
 SELECT temptable.* FROM temptable
 LEFT JOIN realtable on realtable.key = temptable.key
 WHERE realtable.key is null
11
ответ дан 1 December 2019 в 02:10
поделиться

Обратите внимание на другой ответ относительно индексации. НЕ СУЩЕСТВУЕТ, обычно довольно быстро, если у Вас есть хорошие индексы.

, Но я имею , имел проблемы производительности с операторами как Вы, описывают. Один метод, который я раньше обходил, который должен использовать временную таблицу для значений кандидата, выполните УДАЛЕНИЕ ИЗ... ГДЕ СУЩЕСТВУЕТ (...), и затем вслепую ВСТАВЬТЕ остаток. В транзакции, конечно, для предотвращения условий состязания. Разделение запросов иногда позволяет оптимизатору делать свое задание без того, чтобы запутываться.

1
ответ дан 1 December 2019 в 02:10
поделиться

Попытайтесь заменить НЕ, СУЩЕСТВУЕТ с левым внешним объединением, оно иногда работает лучше в больших наборах данных.

6
ответ дан 1 December 2019 в 02:10
поделиться

Внешний Применяются, имеет тенденцию работать на меня...

вместо:

from t1
where not exists (select 1 from t2 where t1.something=t2.something)

я буду использовать:

from t1
outer apply (
    select top 1 1 as found from t2 where t1.something=t2.something
) t2f
where t2f.found is null
0
ответ дан 1 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: