Praca Warszawa – Programista/Administrator MS SQL SERVER

0

W firmie, w której pracuję rozpoczęła się rekrutacja na następujące stanowiska: Projektant/Programista MS SQL Server, Administartor MS SQL Server

Wszystkich zainteresowanych proszę o kontakt na adres: rekrutacja@isolution.pl .

PROSZĘ NIE KONTAKTOWAĆ SIĘ PRZEZ MÓJ BLOG !!!

Projektant/Programista MS SQL Server

Miejsce pracy: Warszawa

Wybrany kandydat będzie odpowiedzialny za:

  • tworzenie oprogramowania w języku T-SQL
  • projektowanie i wyznaczanie kierunków implementacji w realizowanych aplikacjach
  • dokumentowanie projektów
  • kontakt z klientem biznesowym

Od kandydatów oczekujemy:

  • wykształcenia wyższego informatycznego lub pokrewnego
  • minimum 2- letniego doświadczenia zawodowego w programowaniu w języku T-SQL
  • znajomości relacyjnych baz danych, w szczególności MS SQL Server 2008 /2008R2
  • umiejętności modelowania, tuningowania, customizacji i optymalizacji baz danych
  • doświadczenia w procesach migracji danych między systemami
  • znajomości procesów ETL
  • znajomości BIDS (SSRS, SSIS)
  • chęci zdobywania wiedzy i kompetencji w wyznaczonym obszarze technologii
  • bardzo dobrej organizacji pracy, dokładności, odpowiedzialności, łatwości nawiązywania kontaktów

Dodatkowe atuty:

  • posiadanie certyfikatów firmy Microsoft
  • znajomość nowych funkcjonalności MS SQL Server 2012,
  • doświadczenie w pracy z bazami danych Oracle, MySQL, Postgre SQL, DB2
  • znajomość technologii .NET a w szczególności CLR
  • znajomość SSAS
  • certyfikacja, w szczególności:
    • Certyfikacja Microsoft (MCTS, MCTIP, MCSA, MCSE)

Osobie zatrudnionej oferujemy:

  • atrakcyjne warunki finansowe
  • premie projektowe
  • udział w ciekawych projektach
  • program profesjonalnych szkoleń i certyfikacji
  • ubezpieczenie medyczne

Zapraszamy do współpracy również osoby prowadzące własną działalność gospodarczą.

Jeśli uważasz, że spełniasz powyższe wymagania wyślij swoje CV na adres: rekrutacja@isolution.pl

Administrator MS SQL Server

Miejsce pracy: Warszawa

Wybrany kandydat będzie odpowiedzialny za:

  • administrację serwerami bazodanowymi
  • dokumentowanie wprowadzanych zmian

Od kandydatów oczekujemy:

  • wykształcenia wyższego informatycznego lub pokrewnego
  • minimum 2-letniego doświadczenia zawodowego w administracji baz danych
  • znajomości relacyjnych baz danych, w szczególności MS SQL Server 2008 /2008R2
  • dobrej znajomości zagadnień z obszaru administracji baz danych
  • doświadczenia w rozwiązywaniu problemów i monitoringu systemów
  • znajomości zagadnień z zakresu systemów operacyjnych i serwerów Windows
  • wiedzy z zakresu programowania SQL, T-SQL
  • umiejętności przygotowania oraz implementacji procedur backupowych
  • umiejętności modelowania, tuningowania, customizacji i optymalizacji baz danych
  • doświadczenia w zarządzaniu backupami danych
  • chęci zdobywania wiedzy i kompetencji w wyznaczonym obszarze technologii
  • bardzo dobrej organizacji pracy, dokładności, odpowiedzialności, łatwości nawiązywania kontaktów

Dodatkowe atuty:

  • posiadanie certyfikatów firmy Microsoft
  • znajomość nowych funkcjonalności MS SQL Server 2012,
  • znajomość technologii .NET a w szczególności CLR
  • certyfikacja, w szczególności:
    • Certyfikacja Microsoft (MCTS, MCTIP, MCSA, MCSE)
  • doświadczenie w administrowaniu baza danychMySQL, Postgre SQL, DB2 oraz
    Oracle 10g, 11g: (
  • Znajomość ASM, RMAN,MV
  • Indeksy bitmapowe, partycjonowanie
  • Tuning Aplikacji, tuning zapytań SQL, zarządzanie zasobami, zarządzanie Buffer cache

 

Osobie zatrudnionej oferujemy:

  • atrakcyjne warunki finansowe
  • premie projektowe
  • udział w ciekawych projektach
  • program profesjonalnych szkoleń i certyfikacji
  • ubezpieczenie medyczne

Zapraszamy do współpracy również osoby prowadzące własną działalność gospodarczą.

Jeśli uważasz, że spełniasz powyższe wymagania wyślij swoje CV na adres: rekrutacja@isolution.pl

Praca Warszawa – Programista .NET

0

W firmie, w której pracuję rozpoczęła się rekrutacja na następujące stanowiska: Programista .NET, Starszy Programista .NET, Architekt/Starszy programista .NET

Wszystkich zainteresowanych proszę o kontakt na adres: rekrutacja@isolution.pl .

PROSZĘ NIE KONTAKTOWAĆ SIĘ PRZEZ MÓJ BLOG !!!

 

Programista .Net

Miejsce pracy: Warszawa

Wybrany kandydat będzie odpowiedzialny za:

  • implementację modułów aplikacji w technologii .NET zgodnie z otrzymanymi wymaganiami i projektem technicznym
  • rozwój i utrzymanie aplikacji .NET
  • samodzielne podejmowanie decyzji projektowych w obszarze realizowanego modułu
  • dokumentowanie wytworzonego kodu i podjętych decyzji
  • samodzielne testowanie (testy jednostkowe, testy funkcjonalne programisty)
  • obsługę zgłoszonych błędów

Od kandydatów oczekujemy:

  • wykształcenia wyższego informatycznego lub pokrewnego
  • doświadczenia komercyjnego (co najmniej 1 rok) w projektach z wykorzystaniem platformy .Net 3.5 (C#)
  • zainteresowania w tworzeniu aplikacji internetowych z wykorzystaniem pakietów Visual Studio 2008 (2010 – dodatkowy atut)
  • doświadczenia w obszarach takich jak (opcjonalnie – nie wymagamy wszystkich na raz):
    ASP.Net, WebForms, WCF (XML, XSD, SOAP, UDDI), Web Services, HTML, CSS, JavaScript, jQuery
  • bardzo dobrej znajomości programowania obiektowego
  • znajomości zagadnień baz danych i praktycznej znajomość Microsoft SQL i ADO.NET
  • znajomości UML w stopniu umożliwiającym zrozumienie założeń projektowych przedstawionych w postaci diagramów UML
  • znajomości systemu kontroli wersji (SVN)
  • chęci zdobywania wiedzy i kompetencji w wyznaczonym obszarze technologii
  • bardzo dobrej organizacji pracy, dokładności, odpowiedzialności, łatwości nawiązywania kontaktów

Dodatkowe atuty:

  • znajomość baz danych Oracle
  • znajomość .NET 4.0 (C#)
  • znajomość Visual Studio 2010
  • znajomość LINQ
  • znajomość Entity Framework (Linq-to-Entity) lub innych ORM
  • umiejętność pracy grupowej z użyciem Microsoft Team Foundation Server
  • certyfikacja, w szczególności:
    • OMG Certified UML Professional (Intermediate lub Advanced)
    • Certyfikacja Microsoft (MCTS, MCTIP; MCDA)

Osobie zatrudnionej oferujemy:

  • atrakcyjne warunki finansowe
  • premie projektowe
  • udział w ciekawych projektach
  • program profesjonalnych szkoleń i certyfikacji
  • ubezpieczenie medyczne

Zapraszamy do współpracy również osoby prowadzące własną działalność gospodarczą (kontraktorów).

Jeśli uważasz, że spełniasz powyższe wymagania wyślij swoje CV na adres: rekrutacja@isolution.pl

 

Architekt / Starszy Programista .Net

Region: Warszawa

Wybrany kandydat będzie odpowiedzialny za:

  • tworzenie architektury rozwiązań w oparciu o platformę .NET
  • tworzenie aplikacji w technologii C#/.Net
  • dbanie o jakość kodu i zgodność ze standardami obowiązującymi w firmie
  • projektowanie i wyznaczanie kierunków implementacji w realizowanych aplikacjach
  • dokumentowanie projektów
  • zarządzanie techniczne zespołem projektantów i programistów w tym:
    • przydzielanie i weryfikacja realizacji zadań
    • nadzór nad jakością wytwarzanego produktu
    • kontakt z klientem biznesowym

Od kandydatów oczekujemy:

  • wykształcenia wyższego informatycznego lub pokrewnego
  • minimum trzyletniego doświadczenia na stanowisku odpowiedzialnym za tworzenie rozwiązań z wykorzystaniem technologii .NET i relacyjnych baz danych
  • umiejętności programowania w C# (.Net 2.0, .Net 3,5, .Net 4.0) popartej min. dwuletnim doświadczeniem
  • bardzo dobrej praktycznej znajomości środowiska Visual Studio 2008 lub wyższej wersji
  • znajomości praktycznych zasad programowania i projektowania obiektowego, w tym wzorców projektowych
  • znajomości WinForms/WPF,
  • znajomości technologii Linq-SQL, WCF, ADO.NET, XML, WebServices, Entity Framework (Linq-to-Entity)
  • bardzo dobrej znajomości języków: HTML, CSS, JavaScript, jQuery
  • bardzo dobrej znajomości technologii: AJAX, ASP.NET
  • doświadczenia w pracy z relacyjnymi bazami danych, w szczególności MS SQL Server i/lub Oracle
  • bardzo dobrej praktycznej znajomości T-SQL i/lub PL/SQL
  • doświadczenia w Internet Information Services 6 / 7
  • znajomości systemu kontroli wersji (SVN)
  • umiejętności tworzenia dokumentacji projektowej z wykorzystaniem UML
  • znajomości architektury SOA
  • znajomości narzędzi do tworzenia raportów
  • chęci zdobywania wiedzy i kompetencji w wyznaczonym obszarze technologii
  • bardzo dobrej organizacji pracy, dokładności, odpowiedzialności, łatwości nawiązywania kontaktów

Dodatkowe atuty:

  • doświadczenie w  Microsoft Visual Studio 2008 Team Suite i/lub Visual Studio 2010 Ultimate
  • umiejętność pracy grupowej z użyciem Microsoft Team Foundation Server
  • znajomość TDD oraz metodyk Agile
  • znajomość innego ORM
  • certyfikacja, w szczególności:
    • OMG Certified UML Professional (Intermediate lub Advanced)
    • Certyfikacja Microsoft (MCTS, MCTIP; MCDA)

Osobie zatrudnionej oferujemy:

  • atrakcyjne warunki finansowe
  • premie projektowe
  • udział w ciekawych projektach
  • program profesjonalnych szkoleń i certyfikacji
  • ubezpieczenie medyczne

Zapraszamy do współpracy również osoby prowadzące własną działalność gospodarczą.

Jeśli uważasz, że spełniasz powyższe wymagania wyślij swoje CV na adres: rekrutacja@isolution.pl

Starszy Programista .Net

Miejsce pracy: Warszawa

Wybrany kandydat będzie odpowiedzialny za:

  • projektowanie i implementację aplikacji w technologii .NET
  • samodzielne podejmowanie decyzji projektowych
  • zarządzanie techniczne niewielkim zespołem programistów, w tym:
    •  przydzielanie i weryfikacja realizacji zadań
    • nadzór nad jakością wytwarzanego produktu
    • kontakt z klientem biznesowym
  • tworzenie dokumentacji technicznej niezbędnej w procesie rozwoju aplikacji
  • dbanie o jakość kodu i zgodność ze standardami obowiązującymi w firmie
  • analizę zgodności funkcjonowania systemu ze specyfikacją techniczną

Od kandydatów oczekujemy:

  • wykształcenia wyższego informatycznego lub pokrewnego
  • minimum 2-letniego doświadczenia na stanowisku odpowiedzialnym za tworzenie rozwiązań z wykorzystaniem technologii .NET i relacyjnych baz danych
  • umiejętności programowania w C# (.Net 2.0, .Net 3,5, .Net 4.0) popartej min. 2-letnim doświadczeniem
  • bardzo dobrej praktycznej znajomości środowiska Visual Studio 2008 lub wyższej wersji
  • znajomości praktycznych zasad programowania i projektowania obiektowego, w tym wzorców projektowych
  • znajomości WinForms/WPF
  • znajomości technologii Linq-SQL, WCF, ADO.NET, XML, WebServices, Entity Framework (Linq-to-Entity)
  • bardzo dobrej znajomości języków: HTML, CSS, JavaScript, jQuery
  • bardzo dobrej znajomości technologii: AJAX, ASP.NET
  • doświadczenia w pracy z relacyjnymi bazami danych, w szczególności MS SQL Server i/lub Oracle
  • bardzo dobrej praktycznej znajomości SQL oraz T-SQL i/lub PL/SQL
  • doświadczenia w Internet Information Services 6 / 7
  • znajomości systemu kontroli wersji (SVN)
  • znajomości UML w stopniu umożliwiającym przedstawienie założeń
  • chęci zdobywania wiedzy i kompetencji w wyznaczonym obszarze technologii
  • bardzo dobrej organizacji pracy, dokładności, odpowiedzialności, łatwości nawiązywania kontaktów

Dodatkowe atuty:

  • doświadczenie w  Microsoft Visual Studio 2008 Team Suite i/lub Visual Studio 2010 Ultimate
  • umiejętność pracy grupowej z użyciem Microsoft Team Foundation Server
  • znajomość TDD oraz metodyk Agile
  • znajomość innego ORM
  • certyfikacja, w szczególności:
    • OMG Certified UML Professional (Intermediate lub Advanced)
    • Certyfikacja Microsoft (MCTS, MCTIP; MCDA)

Osobie zatrudnionej oferujemy:

  • atrakcyjne warunki finansowe
  • premie projektowe
  • udział w ciekawych projektach
  • program profesjonalnych szkoleń i certyfikacji
  • ubezpieczenie medyczne

Zapraszamy do współpracy również osoby prowadzące własną działalność gospodarczą.

Jeśli uważasz, że spełniasz powyższe wymagania wyślij swoje CV na adres: rekrutacja@isolution.pl

[WSS] Aktualizacja do Windows Phone Tango

0
Firma Microsoft bez zbędnego rozgłosu rozpoczęła proces aktualizacji do najnowszej wersji Windows Phone, zwanej Tango

Ruszyła aktualizacja do Windows Phone Tango. Kto może załapać się już dziś

Jak na razie firma Microsoft milczy  w temacie aktualizacji, ale już pierwsi użytkownicy smartfonów mają udostępnioną aktualizację do pobrania.

Jeden z pierwszych updatów udostępniony jest  już dla HTC Mozart. Informację tą potwierdził jeden z ewangelistów Microsoftu – Aviraj Ajgekar.

Uaktualnienie to rozprowadzane jest w postaci trzech paczek:

  • Pierwsze dwie mają za zadanie przygotować urządzenie pod kątem otrzymania większej aktualizacji.
  • Trzecia zaś to właściwe Tango czyli Windows Phone 7.5 CR (Commercial Release) 3 o numerze buildu systemu 7.10.8779.8.

Problem z instalacją AdventureWorks2008R2 OLTP w SQL Server 2008R2 na WinXP SP3

0

Podczas instalacji skryptu dla bazy AdventureWorks2008R2 OLTP instalowanego na SQL Server 2008R2 w systemie Windows XP SP3 uzyskujemy błąd:
„Operating system error -2147024891: „0×80070005 filestream”

W internecie można znaleźć kilka różnych opisów tego problemu. Poniżej przedstawiam jedno z działających rozwiązań.

Generalnie chodzi o to, że MS SQL Server 2008 R2 uruchomiony jest z poświadczeniami konta wbudowanego:

NT AUTHORITY\NETWORK SERVICE i nie ma wtedy odpowiednich
uprawnień do założenia folderu z FILESTREAM podczas zakładania bazy.

Uzyskujemy wtedy taki komunikat:

"Below is the error using C:\Data
STREAMFCB::Startup: Operating system error 0x80070005(Access is denied.)
occurred while creating or opening file 'c:\data\filestreamP1'. Diagnose and
correct the operating system error, and retry the operation."

Jedną z rad jest odinstalowanie „Aktualizacji zabezpieczeń systemu Windows KB956572„.

Ale co gdy nie mamy zainstalowanej łatki lub odinstalowanie nie pomaga ?

Ja na serwerze zatrzymałem usługę „SQL SERVER” oraz „SQL Full-Text Filter Daemon Launcher” a następnie
uruchomiłem ją z logując się kontem wbudowanym jako LocalSystem.

Instalacja przebiegła prawidłowo.

Podsumowując należy:

  1. Uruchomić SQL Server Configuration Manager
  2. W SQL Server Services wybrać:
    1. SQL Server. Kliknąć ppm wybrać properties. Po otwarciu okna w Built-in-account ustawić LocalSystem.
    2. Kliknąć na OK. Wtedy nastąpi restart.
    3. SQL Full-Text Filter Daemon Launcher. Po otwarciu okna w Built-in-account ustawić LocalSystem.
    4. Kliknąć na OK. Wtedy nastąpi restart.
  3. Uruchomić SSMS a w nim uruchomić skrypt tworzący bazę.
  4. Po pomyślnym zainstalowaniu bazy przywrócić poprzednie ustawienia kont w  SQL Server Configuration Manager

[WSS] Majowe biuletyny zabezpieczeń

0

We wtorek 8 maja firma Microsoft zapowiada wydanie nowych siedmiu biuletynów zabezpieczeń.

Trzy z biuletynów posiadają status „krytyczny, a cztery status „ważny”.

Biuletyny o statusie „krytyczny” adresowane są do użytkowników Windows w wersjach od XP, aż do wersji 7. Łatają one zidentyfikowane luki, które umożliwiały zdalne wywołanie kodu.

Biuletyny o statusie „ważne” łatają 23 luki, w tym w pakiecie Office, .NET Framework jak i Silverlight.

IIF i Choose w SQL Server 2012

0

W MS SQL Server 2012 język T-SQL został rozszerzony o wiele funkcji. W grupie funkcji logicznych można wyróżnić dwie:

  • Funcja logiczna IIF()
  • Funkcja logiczna Choose()

Funkcja logiczna IIF()

Nowa funkcja logiczna IIF(), dostępna w MS SQL Server 2012 zwraca jedną z dwóch wartości w zależności od tego, czy wynikiem wyrażenia logicznego jest PRAWDA(TRUE) lub FAŁSZ(FALSE).

Poniżej przedstawiono składnię:

IIF ( boolean_expression, true_value, false_value )

gdzie:

boolean_expression – poprawne wyrażenie logiczne
true_value – wartość zwracana w przypadku gdy wartością wyrażenia boolean_expression jest True.
false_value – wartość zwracanaw przypadku gdy wartością wyrażenia boolean_expression jest False.

A oto przykład zastosowania:

SELECT IIF ( 64 > 20, 'TRUE', 'FALSE' ) AS Result1;
SELECT IIF ( 32 > 50, 'TRUE', 'FALSE' ) AS Result2;

Można również stosować zagnieżdżanie funkcji IIF(), np.:

DECLARE @value INT = 100,
@marker varchar(4) = 'Free';
SELECT IIF(@value < 100,
IIF(@marker = 'Free', 'Free pass', 'access alowed'),
'Number too big') as 'Example 1';
GO
DECLARE @value INT = 10,
@marker varchar(4) = 'Free';
SELECT IIF(@value < 100,
IIF(@marker = 'Free', 'Free pass', 'access alowed'),
'Number too big') as 'Example 2';
GO
DECLARE @value INT = 10,
@marker varchar(4) = 'NOT Free';
SELECT IIF(@value < 100,
IIF(@marker = 'Free', 'Free pass', 'access alowed'),
'Number too big') as 'Example 3';
GO

W wyniku otrzymujemy:

Należy pamiętać, że dopuszczalna ilość zagnieżdżeń funkcji IIF() wynosi 10.

Funkcja logiczna Choose()

Nowa funkcja logiczna Choose(), dostępna w MS SQL Server 2012 zwraca element o określonym indeksie z listy wartości, które są dostępne.

Poniżej przedstawiono składnię:

CHOOSE ( index, val_1, val_2 [, val_n ] )

gdzie:

index -wyrażenie typu int, reprezentujące numer elementu do wyboru z listy. Jeżeli wartość jest inna niż int, jest dokonywana niejawna konwersja na int. Jeżeli wartość przekroczy granice tablicy wartości zwróconą wartościa będzie NULL.
val_1, val_2 [, val_n ] – lista danaych dowolnego typu

Poniżej przedstawiono przykład użycia:

SELECT CHOOSE ( 3, 'Kowalski'
, 'Malinowski'
, 'Nowak'
, 'Iksinski' ) AS Result;

oraz otrzymany wynik:

Linki:

Kontrowersyjny Timestamp (Rowversion)

0

Typ Timestamp zaimplementowany w MS SQL Server jest binarnym 8 bajtowym typem danych reprezentowanym w trybie heksadecymalnym (HEX). Typ ten zawiera unikalne w ramach całej bazy danych i tabel znaczniki wierszy.

Jego nazwa jest dość niefortunna, gdyż nie ma on nic wspólnego z datą i czasem.

 

(Czasem jest mylony z UNIXowym timestampem). Wg Microsoftu typ ten ma być „deprecated„.

 

Zamiennie należy używać synonimu ROWVERSION, którego nazwa w pełni odzwierciedla jego typ.

 

Zadaniem Rowversion jest wersjonowanie rekordów (wierszy) oraz kontrola kolejności, w jakiej rekordy były dodawane i/lub modyfikowane w ramach tabeli lub całej bazy danych.

 

Przy okazji mylącego nazewnictwa należy zwrócić uwagę na funkcję CURRENT_TIMESTAMP. Funkcja ta jest aliasem funkcji GETDATE()  i nie ma nic wspólnego z typem timestamp.

 

Podstawowe cechy ROWVERSION:

 

  • Synonim TIMESTAMP, którego nazewnictwo jest mylące.
  • Wg Microsoftu TIMESTAMP jest „deprecated” czyli  przestarzały, a co za tym sie kryje to to, że w kolejnych wersjach MS SQL Server może zostać on usunięty.
  • Typ binarny o długości 8 bajtów w reprezentacji heksadecymalnej.
  • W ramach jednej tabeli może wystąpić tylko jedna kolumna z typem ROWVERSION
  • Przechowuje informacje w jakiej kolejności wiersze były wstawiane i/lub modyfikowane w bazie i tabeli.
  • Zawartość ROWVERSION można przekopiować do kolumny typu VARBINARY
  • Wartość ROWVERSION jest wartością wyliczaną i nie można jej wstawić do pola ręcznie Sposobem na przekopiowanie zawartości kolumny jest przez zastosowanie SELECT … INTO …., ale nie zaleca się używania rowversion w ten sposób.
  • Przy pomocy funkcji skalarnej @@DBTS można zwrócić wartość, która jako ostatnia została wstawiona do kolumny typu ROWVERSION w bieżącej bazie danych. Po usunięciu wiersza i dodaniu nowego wartość ROWVERSION będzie inna.

Przykłady użycia:

 

Jeżeli nie podamy nazwy kolumny nazwa ta sama zostanie ustawiona na [timestamp].

(Dotyczy wyłącznie timestamp)


<div></div>
CREATE TABLE dbo.ExampleTable
      (
         PriKey int PRIMARY KEY
       , timestamp
      )
GO

 

Przykład z użyciem ROWVERSION. W tym wypadku podajemy nazwę kolumny.

CREATE TABLE dbo.ExampleTable2
      (  PriKey int PRIMARY KEY
       , VerCol rowversion
      )
GO

Powyższa składnia dotyczy to również ALTER TABLE

 

 

@@DBTS

 

Skalarna funkcja konfiguracyjna zwracająca ostatnio użytą wartość timestamp (rowversion) z aktualnej bazy. Wartość zwracana jest typy varbinary. Nowa wartość timestamp jest generowana w momencie dodania lub zmiany wartości w wierszu.

 

Przykład użycia @@DBTS

USE AdventureWorks2008R2;
GO
SELECT @@dbts AS 'Rowversion current value';
GO

 

W odpowiedzi uzyskamy następujący wynik:

Rowversion currentvalue
------------------------
0x00000000000009F2
(1 row(s) affected)

 

Przykład użycia ROWVERSION:

CREATE TABLE dbo.Foo
   (
      ID INT NOT NULL IDENTITY(1,1)
     ,FOODATE DATETIME NOT NULL
     ,FOOSTAMP ROWVERSION
   );
GO
INSERT INTO FOO (FOODATE) VALUES ('October 10, 2005');
INSERT INTO FOO (FOODATE) VALUES ('November 10, 2005 10:01:01');
INSERT INTO FOO (FOODATE) VALUES ('December 6, 2005 11:01:01');
INSERT INTO FOO (FOODATE) VALUES ('January 5, 2006');
INSERT INTO FOO (FOODATE) VALUES ('02/07/2006');
INSERT INTO FOO (FOODATE) VALUES ('03/08/2006 14:01:01');
INSERT INTO FOO (FOODATE) VALUES ('04/06/2006 15:01:01');
INSERT INTO FOO (FOODATE) VALUES ('20060504');
INSERT INTO FOO (FOODATE) VALUES ('20060606 17:01:01');
INSERT INTO FOO (FOODATE) VALUES ('20060706 19:01:01');
GO
SELECT ID
     , FOOdate FOO
     , FOOstamp AS Stamp
FROM dbo.FOO;
GO

 

W odpowiedzi dostanie następujący wynik:

ID FOO Stamp <br>---------------------------------------------
 1 2005-10-10 00:00:00.000 0x0000000000000FA2
 2 2005-11-10 10:01:01.000 0x0000000000000FA3
 3 2005-12-06 11:01:01.000 0x0000000000000FA4
 4 2006-01-05 00:00:00.000 0x0000000000000FA5
 5 2006-02-07 00:00:00.000 0x0000000000000FA6
 6 2006-03-08 14:01:01.000 0x0000000000000FA7
 7 2006-04-06 15:01:01.000 0x0000000000000FA8
 8 2006-05-04 00:00:00.000 0x0000000000000FA9
 9 2006-06-06 17:01:01.000 0x0000000000000FAA
10 2006-07-06 19:01:01.000 0x0000000000000FAB
(10 row(s) affected)

 

Linki:

Procedury składowane z prefixem sp_

0
MS SQL Server posiada zbiór predefiniowanych systemowych procedur składowanych zapisanych w bazie master, których nazwy zaczynają się od prefiksu ‘sp_’. Użytkownik może również stworzyć swoją procedurę w bazie master o prefiksie ‘sp_’. Co za tym się kryje? Poniżej przedstawiam kilka zebranych uwag na ten temat.

MS SQL Server posiada zbiór predefiniowanych procedur składowanych, które zapisane są w:

  • bazie master – nazwy tych procedur rozpoczynają się od prefiksu sp_.
    Służą one do pobierania i konfigurowania opcji serwera i baz danych.
  • jako pliki bibliotek dynamicznych dll  – nazwy tych procedur rozpoczynają się od prefiksu xp_.

Istnieje również możliwość tworzenia:

  • własnych procedur składowanych, które przechowywane są w bazie użytkownika,
  • tymczasowych procedur składowanych, które charakteryzują się tym, że nazwy tych procedur rozpoczynają się pojedynczym lub podwójnym znakiem #.

MS SQL Server zapisuje ciało procedury składowanej w tabeli systemowej syscomments, a nazwę w tabeli sysobjects.

W trakcie pierwszego uruchomieniu procedury optymalizator SQL Server przygotowuje i kompiluje plan wykonania. Plan ten przechowywany jest w buforze procedury (Procedure cache) skąd jest pobierany przy ponownym uruchomieniu procedury.

W tym momencie chcę przedstawić kilka spostrzeżeń:

Po pierwsze:

Wiele osób wzorując się na konwencji nazewniczej stosowanej dla procedur systemowych tworzy własne procedury składowane używając prefiksu ‘sp_‘.  Jest to błędne postępowanie ponieważ ze względu na wydajność nie należy postępować w ten sposób, no chyba że procedury składowane użytkownika zostaną zapisane w bazie master.

Dla przykładu:

  • należy stworzyć dwie proste procedury w bazie użytkownika czy też w bazie tempdb i nazwać je odpowiednio: dbo.foo i dbo.sp_foo
  • następnie należy wywołać utworzone procedury w celu skompilowania planu wykonania.
  • kolejny krok to uruchomienie Profilera i stworzenie w nim zdarzenia klasy  Stored Procedur Cache Miss
  • następnie należy ponownie wywołać dwie utworzone wcześniej procedury tj. dbo.foo i dbo.sp_foo.

W przypadku uruchomienia procedury dbo.foo Profiler nie zanotował żadnego zdarzenia, a w przypadku uruchomienia procedury dbo.sp_foo w Profilerze widać zdarzenie SP:CacheMiss. Oznacza to, że SQL Server domyślnie szuka planu wykonania dla procedur o prefiksie sp_ w buforze bazy master. Nie znajdując go tam skompilował ponownie procedurę sp_foo.

W przypadku odwoływania się do procedury za pomocą jej pełnej nazwy, opisany powyżej problem nie wystąpi.

Po drugie:

  • Zaleca się aby nie tworzyć żadnych procedur z prefiksem sp_. SQL Server używa prefiksu sp_ do oznaczenia systemowych procedur składowanych.
  • Może zdarzyć się, że w kolejnych wersjach MS SQL Server może nastąpić konflikt nazw tzn. mogą pojawić się systemowe procedury składowane o tej samej nazwie.
  • Jeśli aplikacja wywołuje procedurę poprzez samą jej nazwę lub jest w schemacie dbo nie korzystając z wyspecyfikowanych nazw schemy to wywoła się systemowa procedura składowana, a nie procedura użytkownika.

Po trzecie:

Używanie prefiksu sp_ jest wątpliwą praktyką, ponieważ stwarza możliwość posiadania dwóch różnych wersji tej samej procedury i można przez pomyłkę wywołać tą złą.

Po czwarte:

Systemowa procedura składowana tak naprawdę jest specjalnie oznakowana w tabelach systemowych, a prefiks to jedynie nazewnictwo. Samo dodanie prefiksu do nowo utworzonej procedury nie sprawi, że będzie ona procedurą systemową.

Po piąte:

Nie mniej jednak przestrzegając pewnych zasad można tworzyć nie tylko procedury składowane ale również tabele i widoki w bazie master z prefiksem sp_ . Obiekty te są wtedy dostępne z poziomu dowolnej bazy danych użytkownika.

W ten sposób tworzy się procedury, które służą nam jako własne narzędzia.

Linki:

Visual Studio „Unable to start debugging”

0

Podczas pracy w Visual Studio 2008 przy próbie uruchomienia debuggera dostajemy komunikat:

” Error while trying to run project: Unable to start debugging.  The Microsoft Visual Studio Remote Debugging Monitor has been closed on the remote machine.”

 

 

Problem ten powstaje w sytuacji gdy pracujemy na 64 bitowym systemie. W momencie uruchamiania VS uruchamiamy denenv na WOW64, (uruchamia się wtedy jako 32 bitowy proces).

W momencie podjęcia próby debuggowania poprzez wciśnięcie F5 łączymy się z „msvsmon.exe„, który jest 64 bitowym procesem. W tym momencie uruchamiany jest w trybie cichym „remote debugging” i konfigurowany jest kanał komunikacji między devenv a msvsmon w celu zezwolenia na debugowanie procesów 64-bitowych.

Błąd ten wynika z tego, że Visual Studio przechodzi w niewłaściwy stan.

Rozwiązania tego problemu są dwa:

  1. Jeżeli uruchomimy menadżera zadań i zobaczymy zasób „msvsmon.exe” należy go usunąć. W przypadku gdy nie ma uruchomionego „msvsmon.exe” należy zrestartować „devenv”.
  2. Inne możliwe rozwiązanie to ustawienie w projekcie platformy jako x86. Będziemy mieli wtedy bezpośredni dostęp do debuggera bez potrzeby uruchomienia „remote debugging”.

 

To samo rozwiązanie stosujemy w przypadku MS Visual Studio 2010.

 

Linki:

http://shortfastcode.blogspot.com/2010/08/microsoft-visual-studio-remote.html

Kilka słów o DROP w T-SQL

0
Przy pomocy DROP można wykasować od razu zawartość kilku tabel przy pomocy pojedynczej instrukcji.

Zazwyczaj stosując instrukcję DROP jesteśmy przyzwyczajeni, że możemy wykasować przy jej pomocy tylko jeden obiekt np. tabela, procedura czy też baza.

W instrukcji tej można jednak podać kilka wartości.

W celu wykasowania zawartości kilku tabel należy podać w instrukcji:

 DROP Table tabela1, tabela2, ...., tabelaN
 GO

Uwaga: Nie można przy pomocy TRUNCATE wykasować zawartości kilku tabel naraz !!!

W analogiczny sposób można wykasować kilka procedur:

DROP PROCEDURE procedura1, procedura2, ..., proceduraN
GO

lub kilka baz:

DROP DATABASE baza1, baza2, ..., bazaN
GO

Linki:

Go to Top