Mam problem z wydajnością mojej bazy danych SQL Server. Znalazłem to narzędzie sp_BlitzCache . Po wykonaniu polecenia otrzymałem następującą instrukcję: Masz 92,00% planów utworzonych w ciągu ostatnich 24 godzin i 92,00% utworzonych w ciągu ostatnich 4 godzin. Podczas gdy zidentyfikowałem problem (używając SQL Server Profiler, sprawdziłem wystąpienia zdarzeń StmtRecompile), byłem …
Mówią, że nie ma czegoś takiego jak „głupie pytanie”, więc oto: Rozumiem, że SQL Server Transparent Data Encryption (TDE) szyfruje dane w spoczynku, więc pliki bazy danych (.mdf) i pliki kopii zapasowych (.bak) są szyfrowane, jeśli ktoś włamie się do twojego magazynu i ukradnie te pliki. Rozumiem również, że dane …
Dziś rano obudził mnie komunikat o logowaniu transakcji w jednej z naszych baz danych. Ten serwer jest klastrem Alwayson, a także transakcyjnym subskrybentem replikacji. Sprawdziłem log_reuse_wait_desc i zobaczyłem logbackup. Ktoś przypadkowo wyłączył zadania tworzenia kopii zapasowych dziennika 4 dni wcześniej, ponownie włączyłem zadanie tworzenia kopii zapasowej dziennika i dziennik został …
Jak pytasz o trzech unikalnych klientów z największymi Purchase_Cost? Chcę zastosować DISTINCTtylko on Customer_Name, ale poniższe zapytanie stosuje wyrazenie odrębne we wszystkich trzech kolumnach. Jak zmodyfikować zapytanie, aby uzyskać pożądany wynik? SELECT DISTINCT TOP 3 customer_name, order_no, Purchase_Cost FROM PurchaseTable ORDER BY Purchase_Cost
Widoki wbudowane pozwalają wybierać podzapytanie, jakby to była inna tabela: SELECT * FROM /* Selecting from a query instead of table */ ( SELECT c1 FROM t1 WHERE c1 > 0 ) a WHERE a.c1 < 50; Widziałem to przy użyciu różnych terminów: widoki wbudowane, klauzula WITH, CTE i tabele …
Nasz produkt oparty jest na Microsoft SQL Server. Obecnie korzystamy z trzech baz danych i zawsze wdrażaliśmy je w jednym wystąpieniu programu SQL Server. Trzy bazy danych to OLTP, OLAP i audyt. Baza danych OLAP ma ogromne dane przychodzące na EOD zarówno z OLTP, jak i audytu, przy użyciu zapytań …
Wewnątrz procedury składowanej mam następujące elementy: (serwer SQL 2008) SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION getStuff BEGIN TRY /* some selects, updates, etc, etc. */ .... COMMIT TRANSACTION getStuff END TRY BEGIN CATCH ... END CATCH Ponieważ jest to oparte na transakcjach, myślałem, że reszta połączeń z bazą danych …
Widziałem, że systemy baz danych NoSQL, takie jak RocksDB, oferują funkcję o nazwie rodziny kolumn . Wydaje mi się, że rozumiem, do czego odnosi się ta koncepcja, ale jakie są rzeczywiste (praktyczne) korzyści z ich używania? Przypuszczam, że w niektórych przypadkach mogą poprawić wydajność wyszukiwania lub przynajmniej wprowadzić kluczową wartość …
Mam tabelę kodów pocztowych, która zawiera środkową długość, długość każdego kodu pocztowego. Używam go, aby uzyskać listę kodów pocztowych w promieniu mili z dowolnego dowolnego punktu. Właśnie przyszło mi do głowy, że to, że punkt środkowy zamka nie znajduje się w danym promieniu, nie oznacza, że sam zamek nie mieści …
Poniższe sprzężenie ma bardzo różne szacunki wierszy podczas wykonywania łączenia na partycjach w porównaniu do łączenia całej tabeli: CREATE TABLE m_data.ga_session ( session_id BIGINT NOT NULL, visitor_id BIGINT NOT NULL, transaction_id TEXT, timestamp TIMESTAMP WITH TIME ZONE NOT NULL, day_id INTEGER NOT NULL, [...] device_category TEXT NOT NULL, [...] operating_system …
Mam kilka obiektów SQL, które muszą podjąć alternatywne działania w zależności od pożądanego stanu żądania. Czy istnieje sposób tworzenia stałych na poziomie bazy danych (wyliczeń), które można przekazywać do procedur przechowywanych, funkcji o wartościach przechowywanych w tabeli i używać w zapytaniach (bez korzystania z CLR)? CREATE PROCEDURE dbo.DoSomeWork(@param1 INTEGER, ..., …
Jeden z moich programistów twierdzi, że COALESCE(column, default value) = default valuejest teraz do sargable. Czy to prawda? Przeprowadziłem następujący test i myślę, że to sugeruje, że COALESCEnie można go sprzedawać. USE tempdb; SELECT @@VERSION; -- Microsoft SQL Server 2016 (RTM-CU3-GDR) (KB3194717) - 13.0.2186.6 (X64) Oct 31 2016 18:27:32 Copyright …
Konwersja zwykłej kolumny na utrwaloną kolumnę obliczeniową powoduje, że to zapytanie nie może wyszukiwać indeksu. Dlaczego? Testowane na kilku wersjach SQL Server, w tym 2016 SP1 CU1. Repros Z kolumną obliczeniową Ze zwykłą kolumną Problem polega na tym table1, że col7. Tabele i zapytania są częściową (i uproszczoną) wersją oryginałów. …
Wszystko, o czym czytałem, to to, jak potencjalnie szkodliwe może być zatrzymanie programu SQL Server, ponieważ tworzy on zimną pamięć podręczną i zużywa pamięć. Dlaczego więc ktoś chciałby zatrzymać SQL Server? Jeśli możesz podać jakieś linki do artykułów, abym mógł przeczytać więcej na ten temat, byłbym bardzo wdzięczny! To pytanie …
select value from persons p join persons2 p2 on left(p.lastname,1) = left(p2.lastname,1) SQL Server. Czy jest jakiś sposób, aby ten SARGable / działał szybciej? Nie mogę tworzyć kolumn na tabeli osób, ale mogę tworzyć kolumny na osobach2.
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.