Marcin's profile"Powoli wyczuwaj swe pow...PhotosBlogListsMore ![]() | Help |
|
|
May 14 SQL Server rozumie język polski !!!No a skąd o tym wiem?
ano wchodzę sobie na WSS - a tam sekcji "Nowości na stronach Technet" widzę artykuł: "Dostosowanie alokacji pamięci dla zapytań w SQL Server 2008" - klikam sobie żeby zobaczyć co też ciekawego tam pokazano ...
Czytam, czytam ... w końcu trafiam na kawałek kodu T-SQL i jakieś było moje zdziwienie!!! SQL Server rozumie język Polski!!!! screen poniżej ...
Oczywiście jest to tylko jeden z wielu przypadków sprawności technicznego review jakie jest stosowane w polskim centrum rozwiązań ! Jeśli Microsoft zdecyduje się na sprawdzenie zawartości artykułów pod tym względem - z chęcią pomogę! A no i jeśli ktoś chce sam poczytać o tej nowej wersji SQL Server znajdzie to tutaj: October 07 Czy SQL Server wie ile może wykorzystać procesorów ?Na jednym z ostatnich spotkań PLSSUG Ziemek Borowski miał świetną sesję o licencjonowaniu. W pewnym momencie sesji stwierdził że licencencje SQL Serverowe można ustawiać za pomocą wpisów w rejestrze ... zapalony tym stwierdzeniem oraz wczorajszym pogonieniem mnie przez Pawła Potasińskiego poszukałem i znalazłem :))
Klucz w rejestrze, który nas interesuje:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\MSSQLLicenseInfo\MSSQL9.00
A możemy tam wpisać:
Mode REG_DWORD 2 --licencjonowanie na procesor
lub
Mode REG_DWORD 0 --licencjonowanie na klienta oraz
ConcurrentLimit REG_DWORD liczba licencji --Liczba procesorów lub połączeń klienckich Oczywiście powyższe dane są w pełni dostępne z poziomu T-SQL. Niestety, zanim poniższy select zwróci wartości z rejestru należy wykonwać restart SQL Servera ;//
SELECT ServerProperty('LicenseType') as LicenseType, ServerProperty('NumLicenses') as ProcessorCount
Jeśli w rejestrze nia ma powższych wpisów wówczas SQL Server zwraca taki wynik selecta:
LicenseType....ProcessorCount
---------------------------------------- DISABLED.......NULL Na koniec dodam tylko że pełny opis można znaleźć na blogu: Microsoft SQL Server Support i że przedstawione powyżej rozwiązanie jest supportowane przez MSFT :))) June 01 like '[A-Z]QLServer' vs. like '_QLServer'ostatnio na forum wss.pl pojawił się wątek o przesukiwaniu ciągów znakowych, punktem wyjścia dla niniejszego researchu był post Pawła Potasińskiego (aka brejk):
Akodo_Shado: select name from slowa where name LIKE 'kote[a-z]%'. Efekt był piorunujący! 140 wyników w mig. brejk:
I nic dziwnego. Przecież w tych 3,5 mln słów ile mogło się zaczynać od "kote" :-) Naturalne, że przy tak dobrej selektywności serwer może użyć indeksu na polu name (jakiegokolwiek indeksu, warto dodać).
Akodo_Shado:
Konsekwencja tego problemu jest też taka, że o ile 'kote[a-z]%' robi się błyskawicznie o tyle '[a-z]%otek' już nie koniecznie. brejk: Co w tym dziwnego? W drugim przypadku serwer musi przecież przeszukać praktycznie całą tabelę (od a do z).
Paweł miał rację, to jasne ... ale ale ... od czego jest kombinacja CTRL + L :)
research rozpoczął się od zrobienia tabeli:
Pierwszy pomysł jaki mi wpadł do głowy był taki żeby zrobić drugą kolumnę z:
mamy tabele bez indeksów, robię z niej dwa zapytania jak poniżej:
(mam w kolumnie ciag wartosc: '00006BB4-215F-424E-8B99-9A69A5C94A97')
wybieram CTRL+L i widze: następnie robię 1x klastrowany + 2x nieklastrowany:
wykonuje to same 2 zapytania: zmienia sie plan wykonania (nie mamy już table scan, mamy index seek ... ale tak czy siak nie ma znaczenia czy nieznany znak znajduje sie jako pierwszy czy jako ostatni! Sprawdzam dalej podmieniając aż do: '[0-9][0-9][0-9][0-9][0-9]BB4-215F-424E-8B99-9A69A5C94A97' i dalej nic .... nie ma znaczenia czy nieznane znaki są na końcu czy na początku... dopiero kiedy robię:
sprawa się wyjaśnia ... Wniosek: - seek bedzie jeśli użyjemy: - scan będzie jeśli: Jesli mimo wszystko ktoś musi specyfikować ciągi znaków przy pomocy _ lub % to wówczas można spróbować dołożyć kolumnę z odwróconą kolejnością liter (w szczególności jeśli tabela ze słownikiem nie jest rozmiarów setek mln wierszy) - wówczas pozbędziemy się skana i pojedziemy po seeku :))) |
|
|