Próbuję sprawdzić w procedurze przechowywanej, czy tabela istnieje w mojej docelowej bazie danych. Jeśli tak się nie stanie, utworzę tabelę przy użyciu tabel Information_schema ze źródłowej bazy danych. Jednak gdy używam sp_execute, aby spróbować przywrócić, jeśli tabela istnieje, pojawia się błąd Procedura oczekuje parametru „@handle” typu „int”. Nie używam parametru …
Mam takie zapytanie: SELECT col1 FROM MyTable WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) BETWEEN col2 AND col3 ; Daje to podpowiedź do planu wykonania podobną do tej: Czy dateaddczęść predykatów wyszukiwania jest wykonywana dla każdego wiersza w zapytaniu? Czy też SQL Server oblicza wartość raz dla całego zapytania?
Mam ogólną tabelę dziennika, około 5m wierszy. Istnieje pole „silnie typowane”, które przechowuje typ zdarzenia, oraz kilka kolumn „luźno typowanych”, które zawierają dane istotne dla zdarzenia. Oznacza to, że znaczenie tych „luźno wpisanych” kolumn zależy od typu zdarzenia. Te kolumny są zdefiniowane jako: USER_CHAR1 nvarchar(150) null, USER_CHAR2 nvarchar(150) null, USER_CHAR3 …
Usiłuję poprawić wydajność procedury składowanej. Kiedy uruchamiam SP, kończy się on niemal natychmiast, jakby coś było buforowane. Powiedziano mi, żebym używał następujących dwóch wierszy SQL przed wykonaniem SP w SSMS: DBCC DROPCLEANBUFFERS DBCC FREEPROCCACHE Kiedy uruchamiam SP z dwoma liniami kodu powyżej SP, kończy się w około 8 sekund. Jednak …
Definiuję schemat nowego zestawu zasobów za pomocą SQL Server 2008 ... W takim przypadku każdy rekord ( np. Wiersz ) będzie musiał przechowywać fragmenty XML. Od czasu do czasu; chociaż nie często; Będę musiał zapytać XML, aby znaleźć wartości elementu i atrybutu. Gdybym pozostawił to moim własnym pomysłom, zwykle używałbym …
Tak jest w przypadku, gdy sprawdzam DB, istnieje tabela archiwum, która przechowuje historię użytkownika, i istnieje procedura wyzwalacza lub przechowywania, która po pewnym czasie usuwa wiersze z tej tabeli, aby uniknąć nadmiernego rozmiaru to samo, nie zaprojektowałem bazy danych, po prostu zajmuję się obsługą aplikacji korzystającej z tej bazy danych, …
W moim biurze mamy zapytanie, które jest dość brzydkie, ale działa całkiem dobrze w środowisku produkcyjnym i programistycznym (odpowiednio 20 sekund i 4 sekundy). Jednak w naszym środowisku testowym trwa 4 godziny. SQL2005 (+ najnowsze łaty) działa podczas produkcji i rozwoju. SQL2008R2 działa podczas testowania. Rzuciłem okiem na plan zapytań …
Mam zadanie w SQL 2008, które uruchamia przechowywane proc do tworzenia kopii zapasowych wszystkich baz danych. Działa to codziennie za pośrednictwem zadania agenta serwera SQL. Każdego dnia kończy się sukcesem, ale w niektóre dni kończy się sukcesem dopiero po utworzeniu kopii zapasowej kilku baz danych. Za każdym razem może być …
Mam następujący widok indeksowany zdefiniowany w SQL Server 2008 (możesz pobrać działający schemat z gist do celów testowych): CREATE VIEW dbo.balances WITH SCHEMABINDING AS SELECT user_id , currency_id , SUM(transaction_amount) AS balance_amount , COUNT_BIG(*) AS transaction_count FROM dbo.transactions GROUP BY user_id , currency_id ; GO CREATE UNIQUE CLUSTERED INDEX UQ_balances_user_id_currency_id …
Mam kilka pakietów roboczych dla każdego Mam skonfigurowane zadanie w agencie serwera SQL. Czasami powinienem biec razem. Jaki jest najlepszy sposób, aby uruchomić je wszystkie w danej sekwencji? Jestem trochę zaskoczony, że agent serwera SQL nie może uwzględnić zadań jako kroków zadania do wykonania. Próbowałem
W dawnych czasach używanie varcharover charbyło wielkim „nie”, ponieważ varcharbyło przechowywane na innej stronie niż reszta wiersza. Czy nadal tak jest w przypadku SQL Server 2008? Czy zobaczę jakikolwiek wzrost pamięci / wydajności po zmianie 1-3 varchar(5)kolumn na char(5)kolumny w tabeli z a) powiedz 2.000.000 wierszy b) jeśli którakolwiek z …
Muszę zmienić kolumnę z NOT NULL na NULL w tabeli zawierającej miliony wierszy. Próbowałem prosty alter table Table1 ALTER COLUMN Column1 XML NULL ale to trwa wiecznie. Oto moje pytania: Dlaczego tak długo trwa modyfikacja? Czy jest na to lepszy sposób?
Muszę wykonać pewne czynności konserwacyjne w węźle dodatkowym lustra. Ponieważ jest to wynikiem spowolnienia witryny podczas przywracania kopii lustrzanej po krótkiej awarii sieci, chcę być bezpieczny i wyłączać kopię lustrzaną, a następnie włączyć ją ponownie po skończeniu wkurzania serwera. Mam teraz plan: Wyłącz lustro Wykonaj moje potencjalnie niebezpieczne rozwiązywanie problemów …
Podczas dodawania użytkowników są role na serwerach DB, często używam funkcji „Skryptuj tę akcję” z GUI. Następnie przechodzę do „Connection :: Change Connection”, aby zrobić to samo na moich innych serwerach. Czy istnieje sposób, w jaki mogę określić połączenie w akcji skryptu, aby nie musiałem wykonywać drugiego kroku zmiany połączenia?
Jak mogę przepisać dla SQL Server wyzwalacz, który został pierwotnie napisany dla Oracle? Oto mój kod aktywacyjny Oracle: CREATE OR REPLACE TRIGGER P000KUL_TEST BEFORE INSERT ON P000KUL REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN SELECT TO_CHAR(SYSDATE, 'dd/mm/RRRR') INTO :NEW.SYSTEM_DATE FROM DUAL; SELECT TO_CHAR(SYSDATE, 'hh:mi') INTO :NEW.SYSTEM_TIME …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.