At its perspective, the concept of collation in SQL Server. Let me explain what are the different characteristics of collation. I will also show what the collation conflict when it occurs and how to deal with it. Lastly, I will live, how we can try to change collation in an existing database.
At its perspective, the concept of collation in SQL Server. Let me explain what are the different characteristics of collation. I will also show what the collation conflict when it occurs and how to deal with it. Lastly, I will live, how we can try to change collation in an existing database.
Slajdy wspierające moją prezentację podczas wystąpienia na Aula Polska. Opowiedziałem o tym, jakie problemy GoldenLine.pl napotkało przy wzroście firmy oraz jak je rozwiązaliśmy.
GoldenLine to mnóstwo zarejestrowanych użytkowników
Stosujemy MVP zawsze i wszędzie
Segmentujemy klientów i walczymy o ich zadowolenie
Wdrażamy Inbound Marketing i Marketing Automation
Maintenance Plans zupełnie znienacka | Każdy z doświadczonych administratorów używa (w jakimś stopniu) czegoś co nazywamy Maintenance Plans – Planami Konserwacji. Podczas tej sesji cciałbym omówić do czego mogą nam się one przydać, jakie funkcjonalności dają, kiedy możemy ich użyć i na co należy zwrócić uwagę. Sesja na poziomie 200 chwilami wybiegająca na 300, z otwarciem na dyskusję.
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)Krzysztof Kotowicz
W trakcie prezentacji zademonstrujemy szkody, na jesteście narażeni nie myśląc o SQL injection. Dowiecie się, jak się przed nim bronić - zarówno w teorii, jak i na konkretnych przykładach. Nauczymy się pisać bezpiecznie w PHP 5 - sprawdzimy Zend Framework i Symfony, przenalizujemy Propel, Doctrine, PDO i mdb2. Omówimy wszystkie kruczki i różnice między różnymi systemami baz danych (Oracle, MS SQL Server, MySQL) oraz nauczymy się pisać procedury składowane odporne na SQL injection.
Podczas pracy z bazami danych na pewno każdy z Was używał WHERE jako klauzuli filtrującej dane. Filtrowanie odbywające się po kolumnach liczbowych nie jest już dla nikogo zagadką, do filtrowania po kolumnach tekstowych częściej używamy predykatu LIKE prawie zawsze z jednym lub dwoma '%'. Niejednokrotnie to już nie wystarcza. Ponadto, przy stale przybywającej ilości przetwarzanych informacji, nie jest wydajne.
Kolejnym naturalnym krokiem jest sięgnięcie po mechanizmy wyszukiwania pełnotekstowego (ang. Full-Text Search). Opowiem o nich podczas tej sesji. Omówimy sobie tworzenie katalogów i indeksów pełnotekstowych oraz zastosowanie predykatów CONTAINS i FREETEXT. Jak zwykle lwią część prezentacji poświęcimy na demonstracje.
Sesja została zaprezentowana przeze mnie pierwszy raz na spotkaniu wrocławskiej grupy PLSSUG - 22.01.2015r.
4Developers 2015: Baza danych w aplikacji typu SaaS - błędy w projektowaniu -...PROIDEA
Jacek Jagieła
Language: Polish
Każda aplikacja potrzebuje przechowywać dane, potrzebuje łatwego i szybkiego do nich dostępu. Rozwój aplikacji stawia nowe wyzwania przed baza danych, coraz więcej rzeczy potrzebujemy zapisać i odczytać. Klienci oczekuja szybkiego wyszukiwania, które będzie dawać "dobre" odpowiedzi. Dalsza ekspansja działu marketingu powoduje wprowadzenie obsługi wielu języków. Każdy klient potrzebuje raportów i agregat do właściwych wniosków w obsługiwanej przez nasz SaaS firmie. Architekt wybrał silnik bazy, który uchodzi za niezniszczalny - udźwignie wszystko zawsze i wszędzie. Czy jedna baza danych wystarczy? W którym momencie nastapi katastrofa - jak jej uniknać i jak się z niej podnieść. Zapoznamy się z wykorzystaniem baz danych w projekcie SaaS - od niewielkiej funkcjonalności - do aplikacji działajacej na wszystkich kontynentach w kilkunastu językach. Zobaczymy o czym nie wolno zapomnieć projektujac bazę danych. Czy SaaS dotyczy tylko klienta i jego oczekiwań? A może pojęcie SaaS powinno nam towrzyszyć na każdym etapie projektowania aplikacji?
Jak 5 narzędzi złożyło się na sukces hurtowni
Maciek jest kierownikiem projektu hurtowni danych, Przemek liderem zespołu programistów. Razem zaprezentują jakie (darmowe) narzędzia developerskie usprawniły prace programistom oraz jakie pozytywne „efekty uboczne” przyniosły one zarówno w samym projekcie jak i w jego otoczeniu. Następnie przedstawią jak doprowadziło ich to – szybciej niż myśleli – do automatu, który na bieżąco buduje z najnowszych źródeł, wdraża i testuje hurtownię danych.
Slajdy wspierające moją prezentację podczas wystąpienia na Aula Polska. Opowiedziałem o tym, jakie problemy GoldenLine.pl napotkało przy wzroście firmy oraz jak je rozwiązaliśmy.
GoldenLine to mnóstwo zarejestrowanych użytkowników
Stosujemy MVP zawsze i wszędzie
Segmentujemy klientów i walczymy o ich zadowolenie
Wdrażamy Inbound Marketing i Marketing Automation
Maintenance Plans zupełnie znienacka | Każdy z doświadczonych administratorów używa (w jakimś stopniu) czegoś co nazywamy Maintenance Plans – Planami Konserwacji. Podczas tej sesji cciałbym omówić do czego mogą nam się one przydać, jakie funkcjonalności dają, kiedy możemy ich użyć i na co należy zwrócić uwagę. Sesja na poziomie 200 chwilami wybiegająca na 300, z otwarciem na dyskusję.
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)Krzysztof Kotowicz
W trakcie prezentacji zademonstrujemy szkody, na jesteście narażeni nie myśląc o SQL injection. Dowiecie się, jak się przed nim bronić - zarówno w teorii, jak i na konkretnych przykładach. Nauczymy się pisać bezpiecznie w PHP 5 - sprawdzimy Zend Framework i Symfony, przenalizujemy Propel, Doctrine, PDO i mdb2. Omówimy wszystkie kruczki i różnice między różnymi systemami baz danych (Oracle, MS SQL Server, MySQL) oraz nauczymy się pisać procedury składowane odporne na SQL injection.
Podczas pracy z bazami danych na pewno każdy z Was używał WHERE jako klauzuli filtrującej dane. Filtrowanie odbywające się po kolumnach liczbowych nie jest już dla nikogo zagadką, do filtrowania po kolumnach tekstowych częściej używamy predykatu LIKE prawie zawsze z jednym lub dwoma '%'. Niejednokrotnie to już nie wystarcza. Ponadto, przy stale przybywającej ilości przetwarzanych informacji, nie jest wydajne.
Kolejnym naturalnym krokiem jest sięgnięcie po mechanizmy wyszukiwania pełnotekstowego (ang. Full-Text Search). Opowiem o nich podczas tej sesji. Omówimy sobie tworzenie katalogów i indeksów pełnotekstowych oraz zastosowanie predykatów CONTAINS i FREETEXT. Jak zwykle lwią część prezentacji poświęcimy na demonstracje.
Sesja została zaprezentowana przeze mnie pierwszy raz na spotkaniu wrocławskiej grupy PLSSUG - 22.01.2015r.
4Developers 2015: Baza danych w aplikacji typu SaaS - błędy w projektowaniu -...PROIDEA
Jacek Jagieła
Language: Polish
Każda aplikacja potrzebuje przechowywać dane, potrzebuje łatwego i szybkiego do nich dostępu. Rozwój aplikacji stawia nowe wyzwania przed baza danych, coraz więcej rzeczy potrzebujemy zapisać i odczytać. Klienci oczekuja szybkiego wyszukiwania, które będzie dawać "dobre" odpowiedzi. Dalsza ekspansja działu marketingu powoduje wprowadzenie obsługi wielu języków. Każdy klient potrzebuje raportów i agregat do właściwych wniosków w obsługiwanej przez nasz SaaS firmie. Architekt wybrał silnik bazy, który uchodzi za niezniszczalny - udźwignie wszystko zawsze i wszędzie. Czy jedna baza danych wystarczy? W którym momencie nastapi katastrofa - jak jej uniknać i jak się z niej podnieść. Zapoznamy się z wykorzystaniem baz danych w projekcie SaaS - od niewielkiej funkcjonalności - do aplikacji działajacej na wszystkich kontynentach w kilkunastu językach. Zobaczymy o czym nie wolno zapomnieć projektujac bazę danych. Czy SaaS dotyczy tylko klienta i jego oczekiwań? A może pojęcie SaaS powinno nam towrzyszyć na każdym etapie projektowania aplikacji?
Jak 5 narzędzi złożyło się na sukces hurtowni
Maciek jest kierownikiem projektu hurtowni danych, Przemek liderem zespołu programistów. Razem zaprezentują jakie (darmowe) narzędzia developerskie usprawniły prace programistom oraz jakie pozytywne „efekty uboczne” przyniosły one zarówno w samym projekcie jak i w jego otoczeniu. Następnie przedstawią jak doprowadziło ich to – szybciej niż myśleli – do automatu, który na bieżąco buduje z najnowszych źródeł, wdraża i testuje hurtownię danych.
Wprowadzenie do składowania danych w chmurze. Od relacyjnych Azure SQL Database, Azure SQL Data Warehouse, NoSQL - Azure DocumentDB, HDInsight (Hadoop, Spark, Hbase), Azure Search i Azure Data Factory
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLATobias Koprowski
To trzecia prezentacja w cztero-częściowym cyklu omawiającym znaczenie wysokiej dostepności w kontekście umów SLA. Prezentacje przeznaczone są dla odbiorców z kręgu ITPro, a publikowane na zywo na portalu VirtualStudy.pl
***
This is third part of my four-parts cycle about Service Level Agreement for ITPros. It a session for Virtualstudy.pl education portal.
Wprowadzenie do modelowania danych w PowerPivotKamil Nowinski
PowerPivot jako zintegrowany dodatek do Microsoft Excel 2013 doskonale wpisuje się w promowaną od wielu lat metodykę Self-Service BI pozwalając na budowanie złożonych modeli danych i późniejsze ich wykorzystanie do zaawansowanych analiz danych.
Na sesji dowiemy się od czego zacząć pracę z PowerPivot, jakie mogą być źródła danych, dlaczego analiza dużych ilości danych jest taka przyjemna (bo szybka) oraz jak możemy przygotowany model współdzielić ze współpracownikami.
Prezentacja po raz pierwszy została przedstawiona na 47. spotkaniu wrocławskiej grupy PLSSUG - 18 grudnia 2014r.
Wprowadzenie do analizy danych w chmurze. Między innymi o Azure Stream Analytics, Azure Data Lake Analytics, Azure Machine Learning, ale też i o rozwiazaniach OpenSource (Spark, Yupiter, Storm, Zepelin)
Reprezentacja hierarchii w SQL Server 2008/2008R2 - 2nd Silesian CodeCampŁukasz Grala
W życiu mamy często do czynienia z hierarchią. Problem pojawia się jak mamy ją odpowiednio zapisać w bazie danych, żeby później z niej efektywnie korzystać. W ramach sesji będą przedstawione zagadnienia związane zarówno z reprezentacją hierarchii przy użyciu złączenia self-join, jak i przy użyciu nowego typu hirarchyid. W ramach sesji przedstawione będą metody korzystania z obu reprezentacji i porównanie ich wydajności.
Prezentacja z konferencji 2nd Sielesian CodeCamp która odbyła się 9 kwietnia 2011 roku.
Transact-SQL to podstawowy język programowania baz danych w środowisku MS SQL Server. Transact-SQL jest zmodyfikowaną i uzupełnioną o elementy typowe dla proceduralnych języków programowania (jak zmienne i instrukcje sterujące wykonaniem programu) wersją standardu SQL-92. Dzięki temu rozszerzeniu, jego możliwości są znacznie większe niż możliwości standardowego SQL-a.
SQL Server został wyposażony w intuicyjne, a zarazem potężne narzędzie administracyjne -- konsolę SQL Server Enterprise Menager. W rezultacie część administratorów SQL Servera nie zna albo nie korzysta z możliwości języka Transact-SQL. A okazuje się, że ta sama operacja może być przeprowadzona kilkukrotnie szybciej, jeżeli zamiast konsoli użyjemy Transact-SQLa.
Książka "Transact-SQL. Czarna Księga" to wyczerpujące i dogłębne kompendium omawiające nie tylko sam język Transact-SQL, ale również zasady projektowania baz danych, a także zarządzanie SQL Serverem za pomocą języka Transact-SQL.
Przedstawiono:
* Standardowe interfejsy języka SQL instalowane wraz z SQL Serverem
* Elementy języka Transact-SQL i składnię poszczególnych instrukcji języka wraz z praktycznymi przykładami ich wykorzystania
* Metody pobierania i modyfikowania danych
* Optymalizację zapytań
* Wyszukiwanie pełnotekstowe i usługa MS Search.
* Zasady projektowania relacyjnych baz danych
* Algorytmy przekształcania relacji poprzez kolejne postacie normalne
* Tworzenie, modyfikowanie i usuwanie wszystkich typów obiektów bazodanowych
* Bezpieczeństwo i kontrolowanie dostępu do danych
* Integrację SQL Servera z innymi serwerami firmy Microsoft
* Tworzenie i przywracanie kopii zapasowych
* Automatyzację czynności administracyjnych
* Monitorowanie pracy SQL Servera i optymalizację jego wydajności
* Łączenie serwerów bazodanowych
* Replikację danych pomiędzy wieloma SZBD
Pierwsza edycja konferencji AzureDay Poland 2016. W ramach tej konferencji sesja o analizie danych strumieniowych przy użyciu Azure Stream Analytics, rozszerzone o możliwości algorytmów uczenia maszynowego przetwarzane w Azure Machine Learning
6. SQLDay 2015
Możliwości
• Wyszukiwanie danych tesktowych zapisanych w
– kolumnach tekstowych (varchar, nvarchar)
– danych binarnych w obsługiwanych formatach (txt, doc, docx, pdf...)
• Dostępne już w bezpłatnej edycji SQL Server Express
• Wyrażenia proste – jedno bądź wiele słów
• Poszukiwanie różnych form gramatycznych
• Wyrazy bliskoznaczne, synonimy słów
• Sąsiedztwo wyrażeń (słów lub fraz)
• Ważenie wyrażeń
• Pozycjonowanie (rangowanie) wyników
• Wyszukiwanie semantyczne
7. SQLDay 2015
Historia
SQL 7 SQL 2005 SQL 2008 SQL 2012 SQL 2014
• Pierwsza odsłona FTS
• Oparty o Microsoft Indexing
Service
• Indeksy, noise words poza
bazą danych (osobne kopie
zapasowe)
• iFTS
• Nowe typy danych –
varchar(max), varbinary(max)
– lepsza wydajność
• Nowe widoki systemowe
• Obsługa XML
• Zintegrowane kopie zapasowe indeksów
• DDL Statements (CREATE FULLTEXT
CATALOG, CREATE FULLTEXT INDEX…
• Thesaurus
• Natywna obsługa języka polskiego
• Możliwość określania odległości
między szukanymi wyrazami (NEAR)
• Kwiecień 2015:
Azure SQL Database
(preview)
9. SQLDay 2015
Zapytania FTS
• Operatory porównania wykorzystywane w części WHERE zapytania
– CONTAINS
– FREETEXT
• Funkcje tabelaryczne (w części FROM), umożliwiają rangowanie
– CONTAINSTABLE
– FREETEXTABLE
11. SQLDay 2015
Predykaty CONTAINS & FREETEXT
CONTAINS FREETEXT
Formy fleksyjne wyrazów Na żądanie
FORMSOF(INFLECTIONAL, wyraz)
Zawsze
Thesaurus (w tym synonimy) Na żądanie
FORMSOF(THESAURUS, wyraz)
Zawsze
Wagi dla wyrazów TAK NIE
Operatory logiczne TAK NIE
Wyrazy blisko siebie TAK NIE
Przedrostki wyrazów (prefix) TAK NIE
Zapytanie Złożone, większa kontrola Dużo prostsze, mniejsza kontrola
Razem rezultaty Mniejsza liczba wyników
Dokładniejsze
Większa liczba wyników
Mniej precyzyjne
12. SQLDay 2015
Wykonywanie zapytania pełnotekstowego
Silnik Full-Text Search:
1) Wykonuje dzielenie wyrazów (word breaker) frazy
2) Generuje formy fleksyjne (steamer)
3) Identyfikuje listę rozszerzeń i zastąpień (thesaurus)
4) Znajduje wszystkie powyższe wyrazy
13. SQLDay 2015
Budowa indeksu
display_term DocID occurrence special_term
dom 1 1 Exact Match
to 1 2 Noise Word
nie 1 3 Noise Word
tylko 1 4 Exact Match
budynek 1 5 Exact Match
dom 1 14 Exact Match
to 1 15 Noise Word
mama 1 16 Exact Match
tata 1 17 Exact Match
i 1 18 Noise Word
ja 1 19 Noise Word
to 2 1 Noise Word
moja 2 2 Noise Word
babcia 2 3 Exact Match
i 2 4 Noise Word
maly 2 5 Exact Match
brat 2 6 Exact Match
http://pliki.naszelementarz.men.gov.pl/elementarz/naszelementarz.pdf
14. SQLDay 2015
Aktualizacja (przebudowa indeksu)
Asynchroniczna:
• Pełna
ALTER FULLTEXT INDEX ON NewsPL
START FULL POPULATION
• Przyrostowa – tylko wiersze zmodyfikowane od ostatniego wypełniania
(wymaga kolumny RowVersion w tabeli)
ALTER FULLTEXT INDEX ON NewsPL
START INCREMENTAL POPULATION
• Tylko wiersze zmodyfikowane od ostatniego wypełniania, wymaga
CHANGE_TRACKING (nie wymaga RowVersion)
ALTER FULLTEXT INDEX ON NewsPL
START UPDATE POPULATION
18. SQLDay 2015
Stoplists & stopwords
• Stoplist-a może zawierać wiele stopword’s
• Pozwala zapobiegać indeksowaniu (a dokładniej wyszukiwaniu)
• Przykłady:
– łączniki: i, lub, oraz,
– Słowa często występujące w danej dziedzinie (np. SQL)
• Jak sprawdzić:
19. SQLDay 2015
Synonimy i plik tezaurus (thesaurus)
• Przechowywane na dysku MSSQLFTDATA tsXXX.xml - (XXX - ENU,PLN)
• tsglobal - globalny tezaurus- wykorzystywany dodatkowo, bez względu na jaki język
– jeśli poszukiwany wyraz znajduje się w globalnym i lokalnym (specyficznym dla języka) -
pierwszeństwo ma lokalny
• Edycja pliku pozwala na konfigurację:
– Diacritics_sensitive
– Expansion (autor, pisarz)
wyszukiwane są również słowa bliskoznaczne
– Replacement (Win 2k8 -> Windows 2008)
wyszukiwane słowo jest zastępowane słowem bliskoznacznym
• Po edycji pliku musi zostać on załadowany przez SQL Server:
20. SQLDay 2015
Wyszukiwanie semantyczne
• Pozwala na głębsze wniknięcie do dokumentów:
– Indeksowanie statystyczne zależnych fraz kluczowych
• Wykorzystanie fraz kluczowych służy:
– Wyszukiwaniu dokumentów podobnych lub powiązanych
• Semantic search rozszerza możliwości wyszukiwania pełnotekstowego
• Wymagania:
– Zainstalowana baza danych Semantic Language Statistics
Dostępna na płycie z instalatorem SQL Server w folderze:
x64SetupSemanticLanguageDatabase.msi
24. DZIĘKUJEMY ZA UWAGĘ!
Kamil Nowiński
PLSSUG Wrocław
kamil.nowinski@plssug.org.pl
@NowinskiK
Tomasz Libera
PLSSUG Kraków
tomasz.libera@plssug.org.pl
@tomasz_libera