Praca Warszawa – Programista/Administrator MS SQL SERVER
0W 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
0W 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
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
0Podczas 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:
- Uruchomić SQL Server Configuration Manager
- W SQL Server Services wybrać:
- SQL Server. Kliknąć ppm wybrać properties. Po otwarciu okna w Built-in-account ustawić LocalSystem.
- Kliknąć na OK. Wtedy nastąpi restart.
- SQL Full-Text Filter Daemon Launcher. Po otwarciu okna w Built-in-account ustawić LocalSystem.
- Kliknąć na OK. Wtedy nastąpi restart.
- Uruchomić SSMS a w nim uruchomić skrypt tworzący bazę.
- Po pomyślnym zainstalowaniu bazy przywrócić poprzednie ustawienia kont w SQL Server Configuration Manager
[WSS] Majowe biuletyny zabezpieczeń
0We 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
0W 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)
0Typ 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_
0MS 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”
0Podczas 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:
- 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”.
- 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
0Zazwyczaj 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:






