250-ty wpis na tym blogu. Dowcipy o SQL

2012-10-11

Wyjaśnienia dla niewtajemniczonych:

DBA = Database Administrator

COMMIT – polecenie zatwierdzające zapisanie danych/transakcji na dysku. Brak tego polecenia powoduje często odwołanie transakcji

NULL – wartość nieokreślona w SQL

JOIN/SELECT/DROP – pewne polecenia SQL

 

A teraz przejdźmy do rzeczy. Jeśli dowcipy czyta ktoś spoza branży – uśmieszkami oznaczyłem miejsca, gdzie należy się śmiać:

 

Q1: Co DBA powiedział do programisty?

A: Nieważne, programista i tak nie słuchał.

Q2: A co programista odpowiedział DBA?

A: Nieważne. I tak odpowiedź brzmiała „NIE”.

🙂

W Nowym Yorku odbywa się konferencja „Wpływ środowiska bazodanowego na społeczeństwo na przełomie XX i XXI wieku. Na konferencję zaproszono różne bazy danych

Najpierw przyjechała limuzyna z Oraclem. Wysiada Oracle i jeszcze 4 osoby.

-Drogi Oracle, kim są Twoi towarzysze?

-Mam tu 4 DBA. Jeden mnie zainstaluje, drugi zaprojektuje tabele, trzeci będzie mną administrował, a ten czwarty wytłumaczy dlaczego jestem taki drogi.

Drugą limuzyną przyjechał DB2 z 40 osobami w towarzystwie:

-Drogi DB2, kim oni są?

-Tych dwóch to DBA, ci dwaj to specjaliści od sprzętu, a tych 36 to konsultanci.

W trzeciej limuzynie przyjechał SQL Server. Przyjechał sam.

-Dlaczego nie przywiozłeś nikogo ze sobą?

-Ach, bo ja jestem od Microsoft. Właściwie każdy mnie łatwo zainstaluje, wszędzie pełno kreatorów, administracja mimi bazami to pestka! A jeśli się wysypię no cóż – radź sobie sam, pogoogluj, albo poszukaj na forum…

20 minut po rozpoczęciu konferencji z piskiem opon, brudnym samochodem podjeżdża MySQL. Koszula niewyprasowana, włosy nieuczesane, MySQL pędzi na konferencję.

-MySQL, dlaczego się spóźniłeś?

-Ach, coś mi się pomieszało, sądziłem że dzisiaj jest 31 luty… Czytaj dalej »

By Rafał Kraik in Humor, SQL

Błąd podczas konfiguracji Always ON: The connection to the primary replica is not active.

2012-10-11

Podczas kolejnego kroku konfiguracyjnego kreatora grupy Always On otrzymałem komunikat o błędzie:

The connection to the primary replica is not active.

Przyczyna była taka, że jeden z serwerów wykorzystywał inne konto usługi na którym działa SQL Server. Nie jest to błąd, jednak w takim przypadku konto suługi innego serwera musi mieć utworzony login do drugiego serwera. Ja chciałem, aby oba serwery wykorzystywały to samo konto, więc po prostu zmieniłem w Configuration Managerze konto na współne. Po restarcie SQL Server i ponownym uruchomienia kreatora grupy Always On problem minął.

By Rafał Kraik in Błedy, SQL, SQL 2012

Scalanie skoroszytów Excel – program ułatwiający łączący dane w jeden skoroszyt zbiorczy

2012-10-05

W firmowym życiu często spotykamy się z intensywnym wykorzystywaniem skoroszytów Excel. Pracownicy wypełniając ankiety, sporządzając raporty wypełniają własne skoroszyty, które są dalej przesyłane do innych pracowników: managerów, kierowników itp.

Osoba otrzymująca dane w takiej postaci z jednej strony uzyskuje informacje dobrze ułożone, sformatowane, z drugiejstrony, informacje są jednak dość rozbite, ponieważ są rozrzucone między wiele mniejszych plików. Chociaż Excel posiada własne funkcje scalające dane z wielu skoroszytów (konsolidacja arkuszy), to nie ma co liczyć na to, że rozwiążą one w automatyczny sposób kwestię pojawiania się nowych skoroszytów Excel.

Poniżej znajdziesz opis programu, który może pomóc w rozwiązaniu tego problemu. Merge Excel Data (Scalanie danych Excel) to program, który przegląda wskazany katalog w poszukiwaniu plików Excel. Następnie otwiera każdy z tych skoroszytów i przepisuje zawartość wybranych komórek do jednego skoroszytu zbiorczego.

Powyżej zaprezentowane jest okno programu. Oto znaczenie jego opcji:

  • Wybierz katalog z plikami źródłowymi – tutaj należy wskazać lokalizację katalogu,  wktórym umieszczane są skoroszyty Excel do połączenia w jeden  skoroszyt zbiorczy.
  • Plik docelowy – tu podaj ścieżkę do pliku skoroszytu zbirczego, który będzie zawierał scalone dane
  • Nadpisz jeżeli istnieje – zaznaczenie tej opcji powoduje, że jeżeli w momencie rozpoczęcia pracy programu istnieje plik skoroszytu zbiorczego to zostanie on skasowany i zastąpiony nowym.
    Zaznacz tę opcję, jeżeli nowe dane ciągle napływają do katalogu źródłowego, a ciebie interesuje jedynie posiadanie danych zbiorczych, scalonych w oparciu o pliki aktualnie znajdujące się w katalogu źródłowym.
    Odznacz tę opcję, jeżeli przetwarzanie odbywa się etapowo, np. scaliłeś dane znajdujace się w katalogu, po czym usunąłeś zawartość katalogu. Za jakiś czas do katalogu wgrywasz nowe pliki, które chciałbyś dołączyć do już istniejącego pliku ze scalonymi w poprzednim kroku danymi
  • Otwórz docelowy skoroszyt po zakończeniu – zaznaczenie opcji spowoduje, że po zakończeniu scalania skoroszyt Excel zostanie otwarty i użytkownik może zapoznać się z wynikami scalnia od razu. Czytaj dalej »

SSIS: Pętla ForEach po plikach z wyodrębnieniem skróconej nazwy pliku (bez ścieżki) – krok po kroku z obrazkami

2012-10-01

Problem: Task z SSIS iterując przez pliki, zapisuje w zmiennej związanej z tą iteracją pełną ścieżkę pliku. Niekiedy potrzebna jest tylko nazwa skrócona. Oto jak otrzymać samą nazwę pliku (bez ścieżki):

1. Umieść w designerze ForEachLoop Container, a w nim Script Task. Zmień nazwy tasków, jeśli chcesz:

2. Ustaw w odpowiedni sposób właściwości kontenera ForEach. U mnie chodziło o iterację po plikach z rozszerzeniem TXT znajdujących sie w katalogu c:\temp. Zauważ, że już na tym etapie wystarczyłoby wskazać, że interesuje cię wyłącznie nawa pliku bez ścieżki dostępu. Wystarczyłoby wtedy wybrać „Retrieve file name” na „Name and extension” lub „Name only”, zakładam jednak, że chcesz zobaczyć i pełną ścieżkę dostępu do pliku i skróconą.

3. Zdefiniuj zmienną, w której będzie przechowywana nazwa pliku, a właściwie pełna ścieżka dostępu do niego. W tym celu przejdź na Variable Mappings i stwórz nową zmienną: Czytaj dalej »

By Rafał Kraik in SSIS

SQL: Błąd: Login failed for user 'x’. The user is not associated with a trusted SQL Server connection.

2012-09-29

Podczas definiowania replikacji transakcyjnej z updatable subscriptions otrzymałem komunikat o błędzie:

Login failed for user 'x’. The user is not associated with a trusted SQL Server connection.

Przyczyny były następujące:

  • Brakowało jednego wspólnego loginu z uprawnieniami do replikowanej przeze mnie bazy danych
  • Login ten nie był dodany do listy „Publication Access List”
  • Na obu serwerach należało włąćzyć uwierzytelmianie mieszane „Windows and SQL Authentication”
  • No i należało zrestartować serwery.
By Rafał Kraik in Błedy, SQL

Select budujący listę wartości rozdzielaną przecinkami

2012-09-28

Tym razem szukamy metody na uzyskanie listy wartości rozdzielanej przecinkami. Załóżmy, że interesuje nas lista kolorów. Zacznijmy od prostego zapytania, które zwróci listę unikalnych kolorów:

SELECT DISTINCT P.Color
from Production.Product AS P
WHERE P.Color IS NOT NULL
ORDER BY P.Color ASC

Oto efekt:

Jednak my wolelibyśmy zobaczyć te wartości w jednej zmiennej! Dorzućmy więc FOR XML PATH: Czytaj dalej »

By Rafał Kraik in SQL

Rodzaje CHECKPOINT w SQL 2012

2012-09-26

W poście http://www.mobilo24.eu/sql-jak-czesto-uruchamia-sie-automatycznie-checkpoint/ pisałem o tym kiedy uruchamia się CHECKPOINT oraz jak można wpływać na częstość wystąpienia tego zjawiska. Teraz uzupełniam te informacje o nowości z SQL 2012.

Otóż w SQL 2012 CHECKPOINT może występować w kilku wersjach:

  • Direct – są to te CHECKPOINTy, które zostały wywołane przez serwer na skutek przekroczenia czasu definiowanego parametrem 'recovery interval’
  • Indirect – są to CHECKPOINTY generowane na potrzeby nowej opcji bazy danych dostępnej od wersji 2012. Jest to opcja „Target recovery Time”, która przedefiniowuje wartość „recovery interval” z poziomu serwera.
  • Manual – są to CHECKPOINTy wywoływane ręcznie przez użytkownika, a właściwie administratora. Służy do tego polecenie CHECKPOINT. Pisałem o tym na Mobilo tutaj
  • Internal – to również CHECKPOINTY uruchamiane automatycznie przez serwer, ale tym razem przyczyną wyzwolenia checkpointa jest pewna systemowa aktywność zachodząca na serwerze np. tworzenie backupu lub snapshota

 

By Rafał Kraik in SQL, SQL 2012