Pytania otagowane jako database-internals

Pytania techniczne dotyczące wewnętrznego działania silnika bazy danych.

4
Wskaźnik niepowtarzalności narzutów
Prowadzę ciągłą debatę z różnymi programistami w moim biurze na temat kosztu indeksu i tego, czy unikalność jest korzystna czy kosztowna (prawdopodobnie obie). Sednem problemu są nasze konkurujące zasoby. tło Wcześniej czytałem dyskusję, w której stwierdzono, że Uniqueindeks nie jest dodatkowym kosztem do utrzymania, ponieważ Insertoperacja domyślnie sprawdza, gdzie mieści …

2
Dlaczego tabela temp jest bardziej skutecznym rozwiązaniem problemu Halloween niż chętna szpula?
Rozważ następujące zapytanie, które wstawia wiersze z tabeli źródłowej tylko wtedy, gdy nie ma ich już w tabeli docelowej: INSERT INTO dbo.HALLOWEEN_IS_COMING_EARLY_THIS_YEAR WITH (TABLOCK) SELECT maybe_new_rows.ID FROM dbo.A_HEAP_OF_MOSTLY_NEW_ROWS maybe_new_rows WHERE NOT EXISTS ( SELECT 1 FROM dbo.HALLOWEEN_IS_COMING_EARLY_THIS_YEAR halloween WHERE maybe_new_rows.ID = halloween.ID ) OPTION (MAXDOP 1, QUERYTRACEON 7470); Jeden z …

2
W poszukiwaniu informacji poufnych FILESTREAM
Gdy funkcja FILESTREAM zostanie aktywowana na Microsoft SQL Server 2012, wówczas SQL Server utworzy „ukryty” udział w systemie. Udział jest zdefiniowany w następujący sposób: Sharename FILESTREAM_SHARE Path \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE Remark SQL Server FILESTREAM share Maximum users unlimited Users Caching Manual caching of documents Permissions NT-AUTHORITY\Authenticated Users, FULL Nazwa to nazwa udziału …

2
Dlaczego MySQL pozwala HAVING na użycie SELECT aliasów?
O ile mi wiadomo, kolejność przetwarzania kwerend logicznych, która jest konceptualną kolejnością interpretacji, zaczyna się od FROM w następujący sposób: OD GDZIE GRUPUJ WEDŁUG MAJĄCY WYBIERZ ZAMÓW PRZEZ Po tej liście łatwo jest zrozumieć, dlaczego nie można wybrać WYBIERAJ aliasów w klauzuli WHERE, ponieważ alias nie został jeszcze utworzony. T-SQL …


1
Co umożliwia programowi SQL Server zamianę nazwy obiektu na ciąg przekazywany do procedury systemowej
Co powoduje, że legalne jest przekazywanie nazwy obiektu do procedury przechowywanej w systemie sp_helptext? Jaki mechanizm konwertuje nazwę obiektu na ciąg? na przykład -- works sp_helptext myproc sp_helptext [myproc] sp_helptext [dbo.myproc] -- and behaves the same as a string sp_helptext 'myproc' sp_helptext 'dbo.myproc' -- does not work sp_helptext dbo.myproc -- …

2
Czym różnią się te dwa wycofania programu SQL Server?
W SQL Server 2008 R2 czym różnią się te dwa wycofania: Uruchom ALTERinstrukcję przez kilka minut, a następnie naciśnij „Anuluj wykonywanie”. Całkowite cofnięcie zajmuje kilka minut. Uruchom tę samą ALTERinstrukcję, ale upewnij się, że LDFplik nie jest wystarczająco duży, aby mógł zakończyć się powodzeniem. Po osiągnięciu LDFlimitu i braku zezwolenia …


1
Dlaczego te podobne zapytania wykorzystują różne fazy optymalizacji (przetwarzanie transakcji vs. szybki plan)?
Przykładowy kod w tym elemencie łączenia Pokazuje błąd gdzie SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item = L2.csv_item Zwraca prawidłowe wyniki. Jednak poniższe wyniki zwracają niepoprawne wyniki (w 2014 r. Przy użyciu nowego narzędzia Kardynalność) SELECT (SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON …


1
Gdzie SQL Server fizycznie przechowuje WARTOŚĆ TOŻSAMOŚCI dla tabeli?
Mam nadzieję, że ktoś może skierować mnie w tym kierunku. Oto moje dotychczasowe działania. SELECT * FROM sys.identity_columnsjest widokiem systemu, który daje „ostatnią wartość”, ale definicja tego widoku używa funkcji wewnętrznej IdentityProperty(colName, 'LastValue')- więc to ślepy zaułek (nie wyciąganie go z tabeli systemowej). Wszędzie (szukałem) w Internecie sugeruje użycie DBCC …


1
Wyświetl listę ROW_OVERFLOW_DATA stron dla określonej tabeli
Próbuję uzyskać listę stron dla tabeli zawierającej wiersze z ROW_OVERFLOW_DATA. Mogę uzyskać listę przydzielonych stron z nieudokumentowanego DMV, sys.db_db_database_page_allocationsjednak wydaje się, że nie ma żadnych ROW_OVERFLOW_DATA stron wymienionych w danych wyjściowych tego DMV. Czy jest jakiś inny DMV, którego po prostu nie mogę zlokalizować? Minimalny, kompletny i (miejmy nadzieję) weryfikowalny …


2
Dlaczego zagnieżdżone pętle łączą tylko lewe połączenia?
W blogu Craig Freedman, w zagnieżdżonych pętli Dołącz wyjaśnia dlaczego zagnieżdżone pętle przystąpić nie może poprzeć prawo sprzężenia zewnętrznego: Problem polega na tym, że skanujemy wewnętrzną tabelę wiele razy - raz dla każdego rzędu sprzężenia zewnętrznego. Podczas tych wielu skanów możemy napotkać te same wewnętrzne rzędy wiele razy. W którym …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.