Prezentacja powstała na potrzeby prezentacji JUG Bielsko-Biała.
Na początku zaczynamy od postawienia sobie pytania dlaczego liquibase jest nam potrzebny i z jakimi problemami spotykamy się na co dzień podczas zarządzania schematem relacyjnej bazy danych.
W kolejnej części prezentacji odpowiadamy sobie na zadane pytania zgłębiając wiedzę o liquibase
Do prezentacji dołączony jest demo: https://github.com/mlubanski/questionnarie-server
Liquibase - Zarządzanie zmianami w relacyjnych bazach danychMarcinStachniuk
Prezentacja wygłoszona na Wrocławskim JUGu 30 września 2015. Prezentacja opisuje w jaki sposób można zarządzać zmianami w relacyjnych bazach danych i jak ten problem rozwiązuje Liquibase.
Zasilanie hurtowni danych w SSIS w praktyceKamil Nowinski
Temat obejmuje wybrane aspekty zasilania hurtowni danych za pomocą SSIS (SQL Server Integration Services).
I choć na pewno nie omawia wszystkiego to pozwala zwrócić uwagę na kilka istotnych szczegółów mogących
zadecydować o czasochłonności, a więc koszcie, a więc terminowości i w rezultacie sukcesie projektu zasilania hurtowni danych.
Prezentacja po raz pierwszy została przedstawiona na 45. spotkaniu wrocławskiej grupy PLSSUG - 23 października 2014r.
Podręczna pomoc dla programistów aplikacji bazodanowych
Język SQL jest podstawowym narzędziem programistów i operatorów baz danych. Posiada stosunkowo niewiele instrukcji, a jednak za jego pomocą można wykonywać wszystkie operacje na danych, tabelach i bazach. Często jednak podczas pracy trzeba przypomnieć sobie składnię instrukcji, znaczenie jej parametrów lub sposób korzystania z niej. Sprawę dodatkowo komplikuje to, że implementacje języka SQL w różnych systemach zarządzania bazami danych różnią się nieznacznie od siebie. Przetrząsanie kilkusetstronicowej dokumentacji zwykle zajmuje zbyt wiele czasu. Programistom, pracującym najczęściej pod presją czasu, potrzebne jest podręczne źródło podstawowych informacji.
Taką właśnie rolę pełni książka "SQL. Leksykon kieszonkowy". Zgromadzono w niej opisy poleceń języka w implementacjach dla najpopularniejszych systemów baz danych -- Oracle, DB2, MS SQL Server oraz MySQL. Opis każdego z poleceń jest zilustrowany przykładami, co dodatkowo ułatwia zrozumienie jego zastosowania. W książce opisano:
* Funkcje grupowania i sumowania
* Funkcje przetwarzające dane
* Polecenie SELECT wraz z podzapytaniami i funkcjami agregującymi
* Sposoby uaktualniania i usuwania danych
* Metody wprowadzania danych
* Zarządzanie transakcjami
* Złączenia tabel
Omówienie podstawowych wzorców projektowych oraz zasad architektonicznych na przykładzie aplikacji ASP.NET, ale w większości niezależnych od stosowanej technologii. Najważniejsze założenia domain-driven design, SOLID principles, itp.
[#3] in memory - IBM Integrated Analytics SystemArtur Wronski
Presentation #3 from IBM conference "Analityka Nowej Generacji", 8th of March 2018, Warsaw
Title: in-memory processing in Db2
Presenter: Artur Wronski
[language: polish]
Nowości w zakresie bezpieczeństwa w SQL Server 2016Kamil Nowinski
Przechowywanie wrażliwych danych w bazie często wzbudza wiele wątpliwości. Co w sytuacji kiedy użytkownik uzyska bezpośredni dostęp i będzie mógł wykonać zapytanie zwracające więcej danych niż zobaczyłby w aplikacji?
Spośród zapowiedzianych nowości – SQL Server 2016 przynosi również ulepszenia w obszarze zabezpieczeń, które przedstawimy podczas naszej sesji.
Row Level Security – zabezpieczanie danych na poziomie wierszy to funkcjonalność na którą czeka wielu deweloperów T-SQL. Do tej pory stali oni przed koniecznością ukrywania części danych za pomocą widoków filtrujących źródłowe dane. SQL Server 2016 pozwala na ukrycie części rekordów przed użytkownikiem nawet w sytuacji w której ma on bezpośredni dostęp do tabel.
Chcesz pozwolić użytkownikom odczytywać wszystkie rekordy – ale w przypadku kolumn takich jak numer PESEL czy numer karty kredytowej chcesz aby mogli wyświetlić tylko kilka pierwszych cyfr? Umożliwi to kolejna nowa omawiana funkcjonalność – Dynamic Data Masking.
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ę.
Prezentacja powstała na potrzeby prezentacji JUG Bielsko-Biała.
Na początku zaczynamy od postawienia sobie pytania dlaczego liquibase jest nam potrzebny i z jakimi problemami spotykamy się na co dzień podczas zarządzania schematem relacyjnej bazy danych.
W kolejnej części prezentacji odpowiadamy sobie na zadane pytania zgłębiając wiedzę o liquibase
Do prezentacji dołączony jest demo: https://github.com/mlubanski/questionnarie-server
Liquibase - Zarządzanie zmianami w relacyjnych bazach danychMarcinStachniuk
Prezentacja wygłoszona na Wrocławskim JUGu 30 września 2015. Prezentacja opisuje w jaki sposób można zarządzać zmianami w relacyjnych bazach danych i jak ten problem rozwiązuje Liquibase.
Zasilanie hurtowni danych w SSIS w praktyceKamil Nowinski
Temat obejmuje wybrane aspekty zasilania hurtowni danych za pomocą SSIS (SQL Server Integration Services).
I choć na pewno nie omawia wszystkiego to pozwala zwrócić uwagę na kilka istotnych szczegółów mogących
zadecydować o czasochłonności, a więc koszcie, a więc terminowości i w rezultacie sukcesie projektu zasilania hurtowni danych.
Prezentacja po raz pierwszy została przedstawiona na 45. spotkaniu wrocławskiej grupy PLSSUG - 23 października 2014r.
Podręczna pomoc dla programistów aplikacji bazodanowych
Język SQL jest podstawowym narzędziem programistów i operatorów baz danych. Posiada stosunkowo niewiele instrukcji, a jednak za jego pomocą można wykonywać wszystkie operacje na danych, tabelach i bazach. Często jednak podczas pracy trzeba przypomnieć sobie składnię instrukcji, znaczenie jej parametrów lub sposób korzystania z niej. Sprawę dodatkowo komplikuje to, że implementacje języka SQL w różnych systemach zarządzania bazami danych różnią się nieznacznie od siebie. Przetrząsanie kilkusetstronicowej dokumentacji zwykle zajmuje zbyt wiele czasu. Programistom, pracującym najczęściej pod presją czasu, potrzebne jest podręczne źródło podstawowych informacji.
Taką właśnie rolę pełni książka "SQL. Leksykon kieszonkowy". Zgromadzono w niej opisy poleceń języka w implementacjach dla najpopularniejszych systemów baz danych -- Oracle, DB2, MS SQL Server oraz MySQL. Opis każdego z poleceń jest zilustrowany przykładami, co dodatkowo ułatwia zrozumienie jego zastosowania. W książce opisano:
* Funkcje grupowania i sumowania
* Funkcje przetwarzające dane
* Polecenie SELECT wraz z podzapytaniami i funkcjami agregującymi
* Sposoby uaktualniania i usuwania danych
* Metody wprowadzania danych
* Zarządzanie transakcjami
* Złączenia tabel
Omówienie podstawowych wzorców projektowych oraz zasad architektonicznych na przykładzie aplikacji ASP.NET, ale w większości niezależnych od stosowanej technologii. Najważniejsze założenia domain-driven design, SOLID principles, itp.
[#3] in memory - IBM Integrated Analytics SystemArtur Wronski
Presentation #3 from IBM conference "Analityka Nowej Generacji", 8th of March 2018, Warsaw
Title: in-memory processing in Db2
Presenter: Artur Wronski
[language: polish]
Nowości w zakresie bezpieczeństwa w SQL Server 2016Kamil Nowinski
Przechowywanie wrażliwych danych w bazie często wzbudza wiele wątpliwości. Co w sytuacji kiedy użytkownik uzyska bezpośredni dostęp i będzie mógł wykonać zapytanie zwracające więcej danych niż zobaczyłby w aplikacji?
Spośród zapowiedzianych nowości – SQL Server 2016 przynosi również ulepszenia w obszarze zabezpieczeń, które przedstawimy podczas naszej sesji.
Row Level Security – zabezpieczanie danych na poziomie wierszy to funkcjonalność na którą czeka wielu deweloperów T-SQL. Do tej pory stali oni przed koniecznością ukrywania części danych za pomocą widoków filtrujących źródłowe dane. SQL Server 2016 pozwala na ukrycie części rekordów przed użytkownikiem nawet w sytuacji w której ma on bezpośredni dostęp do tabel.
Chcesz pozwolić użytkownikom odczytywać wszystkie rekordy – ale w przypadku kolumn takich jak numer PESEL czy numer karty kredytowej chcesz aby mogli wyświetlić tylko kilka pierwszych cyfr? Umożliwi to kolejna nowa omawiana funkcjonalność – Dynamic Data Masking.
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ę.
Prezentacja z konferencji SQLDay 2017, Wrocław 16.05.2017.
Wdrażanie kolejnych wersji projektów SSIS jest dość monotonną ręczną pracą z poziomu SQL Server Data Tools. Rebuild/Deploy/Validate/Execute. Kiedy dochodzi do tego system kontroli wersji, branch, merge, dodawanie pakietów do projektów i przełączanie się między środowiskami DEV/TEST/PROD to robi się jeszcze nudniej.
Na sesji zaprezentuję jak można przerzucić te wszystkie czynności na serwer. Zobaczysz jak wykorzystać do tego Powershell i dostępne API .NET. Dodam do tego kontrolę wersji w TFS i przekonasz się, że testowanie i dostarczanie kolejnych wersji projektów wcale nie musi być tak uciążliwe. Zobaczysz na co zwrócić uwagę projektując własne rozwiązanie, z których zasobów skorzystać, jakie są ograniczenia i ich próby obejścia.
2. Dziś w programie
Na czym polega minimalne logowanie?
Kiedy możemy z niego skorzystać?
Ile można na tym stracić?
A ile zyskać?
Co to jest logowanie efektywne?
Logowanie w TRUNCATE TABLE?
3. Bartosz Ratajczyk
Konsultant SQL Server
Programista aplikacji i baz danych
MCSE: Data Platform, MCT, MCTS SQL Server 2008
http://bartekr.net | b.ratajczyk@gmail.com
4. Log transakcyjny
Przechowuje informacje o każdej wykonanej
modyfikacji danych
Ilość zapisywanych informacji może zależeć od
modelu odzyskiwania danych (recovery model)
5. Logowanie minimalne (1)
„At a minimum, enough information has to be logged when minimally
logged operation is performed to allow SQL Server to rollback a
transaction that has failed.”
Kalen Delaney, SQL Server Internals 2012
„Minimal logging involves logging only the information that is required
to recover the transaction without supporting point-in-time recovery.”
BOL: https://msdn.microsoft.com/en-us/library/ms191244.aspx
6. Logowanie minimalne (2)
Zawiera tylko informacje o alokacji stron danych
Przez co oszczędzamy na I/O zapisu do logu
ALE:
Nie wszystkie informacje niezbędne do odtworzenia danych znajdują
się w logu transakcyjnym
Dopiero backup logu transakcyjnego zawiera zmienione strony
danych
7. Rodzaje logowania
Pełne – każda operacja ma swój rekord w logu
Efektywne – w logu znajduje się rekord dla
zmienionej strony danych
Minimalne – logowany jest tylko fakt alokacji danych
na stronę
9. Co jest/może być minimalnie logowane?
BULK INSERT
bcp
SELECT INTO
INSERT INTO .. SELECT
CREATE INDEX
ALTER INDEX REBUILD, DBCC DBREINDEX
REORGANIZE niestety nie
.WRITE
WRITETEXT, UPDATETEXT
DEPRECATED
10. Wymagania, wymagania
non-FULL recovery model
AND NOT replicated
AND (
(Heap AND TABLOCK)
OR (B-tree AND empty AND TABLOCK)
OR (B-tree AND empty AND TF-610)
OR (B-tree AND nonempty AND TF-610 AND NEW key-
range)
)
Źródło: Itzik Ben-Gan, http://sqlmag.com/t-sql/minimally-logged-inserts
11. Jeszcze jeden myk
Jeśli nie ma możliwości użycia TABLOCK można użyć wytrychu
EXEC sys.sp_tableoption
@TableNamePattern = N’dbo.Tabela’,
@OptionName = ’table lock on bulk load’,
@OptionValue = ’ON’
13. Wady
Wrażliwe na błędy w plikach danych
Wymaga trybu odzyskiwania danych SIMPLE lub
przełączania między FULL i BULK LOGGED
Czyli odpadają mirroring i Availability Groups
Ale zadziała przy Log Shipping
Może wymagać TF 610 – sysadmin
Wszystkie strony danych muszą być zapisane na dysku
przed zakończeniem transakcji
16. Do zapamiętania
Logowanie minimalne to zapisywanie do logu
transakcyjnego tylko informacji o alokacji stron danych
Przyspiesza część operacji, ale jest wrażliwe na błędy
plików danych
TRUNCATE jest operacją w pełni logowaną, po prostu
jest logowana efektywnie
17. Do poczytania
Itzik Ben-Gan „Minimally logged inserts: http://sqlmag.com/t-
sql/minimally-logged-inserts
Gail Shaw, Tony Davis „Managing the Log in BULK_LOGGED Recovery
Model”
http://www.sqlservercentral.com/articles/Stairway+Series/94552/
Paul Randall „The Myth that DROP and TRUNCATE TABLE are Non-
Logged” http://sqlperformance.com/2013/05/sql-performance/drop-
truncate-log-myth
Remus Rusanu „How to read and interpret the SQL Server log”
http://rusanu.com/2014/03/10/how-to-read-and-interpret-the-sql-
server-log/