SQL Reporting services: pierwsze wywołanie jest bardzo powolne
Zainstalowałem SQL Reporting server (2008 R2), z kilkoma raportami. Ale mam problemy z występami.
Pierwsze wywołanie dnia do serwera (przechodząc na przykład przez interfejs raportu), jest bardzo powolne(co najwyżej 30-45sekund).
Generowanie raportu jest wtedy "szybkie" (1-2 sekundy).
Następne połączenia do serwera są zawsze postowane do następnego dnia. Mam wrażenie, że ładuje wiele rzeczy w pamięci. Ale co może 30-45 sekund do załadowania w pamięci??? I jak załadować go tylko raz?
Serwer jest wystarczająco dobry (quad core, 8GB PAMIĘCI ram, na razie nigdy w pobliżu jego pojemności).
W czym problem? Jak mogę to rozwiązać ?
Te raporty będą uruchamiane tylko 4-5 razy w tygodniu, więc zawsze będą powolne, jeśli nie mogę tego zmienić. A ponieważ jest dostępny dla klienta, po prostu nie mogę ich zrozumieć (a raport jest wywoływany przez stronę internetową, więc ryzykuję, że timeout).
Dziękuję bardzo
6 answers
Wydaje się, że to problem z SSRS. Nie ma nic złego w Twoim raporcie.
To "normalne", że SSRS wymaga więcej czasu, aby załadować po raz pierwszy dostęp do niego po długim czasie bezczynności. Problem jest spowodowany sposobem działania SSR, a SSR regularnie uruchamia domenę aplikacji po określonym czasie. Po ponownym uruchomieniu domeny aplikacji, na pierwsze żądanie SSR musi załadować wszystkie ustawienia i zajmuje to dość dużo czasu.
This blog program jest obejściem sytuacji
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-26 08:46:04
Oto skrypt powershell, który napisałem, aby rozwiązać problem. Jest ustawiony jako zadanie do uruchomienia co 1: 00:
Stop-Service "SQL Server Reporting Services (MSSQLSERVER)"
Start-Service "SQL Server Reporting Services (MSSQLSERVER)"
$wc = New-Object system.net.webClient
$cred = [System.Net.CredentialCache]::DefaultNetworkCredentials
$wc.Credentials = $cred
$src = $wc.DownloadString("http://localhost/Reports/Pages/Report.aspx?ItemPath=***NAME OF HOME PAGE***")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-25 20:34:53
Najlepszym rozwiązaniem, jakie mogłem wymyślić, było wydanie polecenia "curl" na stronie http raportu za pomocą polecenia wsadowego via windows w usłudze windows. To uruchamiało stronę(y) każdego ranka, zanim przyszli użytkownicy.
Nie mam już dostępu do kodu (job był jakiś czas temu), ale to pytanie pokazuje jak używać curl:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-26 12:14:55
Jak powiedział Diego, SSRS ma pewne problemy. Pierwsze wywołanie jest powolne, jeśli chodzi o konfigurację serwera. Polecam następujący config dodać w rsreportserver.config (located if you don ' t know in C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER \ Reporting Services\ReportServer\)
Jeśli chcesz zwiększyć maksymalną pamięć używaną przez SSRS: (co oznacza 7 GB)
<WorkingSetMaximum>7000000</WorkingSetMaximum>
Jeśli chcesz poprawić pierwsze połączenie, możesz ustawić (w minutach)
<RecycleTime>4320</RecycleTime>
Właściwie SSRS ma czas resetowania (recyklingu), w którym czyści swój bufor. Domyślnie ustawiony na 720 min (12h), więc dlatego, jeśli otwierasz raport Codziennie rano, ładuje się bardzo wolno. W razie potrzeby możesz ustawić czas recyklingu na wyższy (2-3 dni). Nie polecam wyższego czasu, ponieważ bufor zapełni się i otrzymasz tylko puste strony, więc będziesz musiał ręcznie ponownie uruchomić usługi raportowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-23 21:27:53
Może być całkowicie niezwiązany z serwerem SQL. Spróbuj sprawdzić, czy nie jest to problem z listą unieważnienia znaku kodu, zobacz Fix powolne uruchamianie aplikacji z powodu walidacji znaku kodu
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-26 12:26:14
Przekonwertowałem główne zapytanie i rozwijane kontrolki na stronie, aby załadować z procedur przechowywanych, zrobiło to różnicę powiedzmy 5 sekund w procesie ładowania.Unikaj korzystania z zapytań inline.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-21 15:11:45