Я знаю, что этот вопрос очевиден, но позвольте мне дать небольшой обзор. Поэтому я хотел удалить данные из нескольких таблиц в моей базе данных SQL Server, поскольку некоторые из этих таблиц имеют FK, ограничения и т. д. удаление их вручную было бы головной болью, поэтому я написал небольшой скрипт, чтобы сделать все это. (Кстати, я использую Dapper).
Код: Выделить всё
-- Disable restrictions from FKs
EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL';
-- Delete data from tables
DELETE FROM dbo.Table1;
DELETE FROM dbo.Table2;
DELETE FROM dbo.Table3;
DELETE FROM dbo.Table4;
DELETE FROM dbo.Table5;
DELETE FROM dbo.Table6;
DELETE FROM dbo.Table7;
DELETE FROM dbo.Table8;
DELETE FROM dbo.Table9;
DELETE FROM dbo.Table10;
DELETE FROM dbo.Table11;
-- Enable restrictions from FKs
EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL';
-- Reset Identities counters to 0
DBCC CHECKIDENT ('dbo.Table1', RESEED, 0);
DBCC CHECKIDENT ('dbo.Table2', RESEED, 0);
DBCC CHECKIDENT ('dbo.Table3', RESEED, 0);
DBCC CHECKIDENT ('dbo.Table4, RESEED, 0);
DBCC CHECKIDENT ('dbo.Table5, RESEED, 0);
DBCC CHECKIDENT ('dbo.Table6, RESEED, 0);
DBCC CHECKIDENT ('dbo.Table7, RESEED, 0);
DBCC CHECKIDENT ('dbo.Table8, RESEED, 0);
DBCC CHECKIDENT ('dbo.Table9, RESEED, 0);
DBCC CHECKIDENT ('dbo.Table10, RESEED, 0);
DBCC CHECKIDENT ('dbo.Table11, RESEED, 0);
Это был сценарий, который я запускал, после его запуска все было хорошо, пока я не начал замечать когда мое приложение отображало данные из моей базы данных (выполняя вызов для получения моих данных), рендеринг, чтобы показать данные, занимал около 2 секунд, а до того, как я запустил сценарий, это не заняло даже секунды, это было мгновенно.
У меня нет сложных запросов, много данных или изменил мои запросы в моем проекте и этом. Здесь я показываю пример того, как я показываю, как я отображаю свои данные в пользовательском интерфейсе:
[img]https://i .sstatic.net/kEWvUvLb.png[/img]
Код объясняет сам себя, вот как я управляю отображением данных в пользовательском интерфейсе, и это отображалось мгновенно, но теперь, как я уже говорил, что после запуска этого скрипта мой рендеринг требуется около 2 секунд, чтобы отобразить данные, как будто я выполняю сложный запрос или что-то в этом роде.
ЧТО Я ПРОБОВАЛ
Код: Выделить всё
-- Reordering indexes
EXEC sp_msforeachtable 'ALTER INDEX ALL ON ? REORGANIZE';
-- Updating statistics in all tables
EXEC sp_msforeachtable 'UPDATE STATISTICS ?';
Подробнее здесь: https://stackoverflow.com/questions/792 ... perfomance