Google Website Translator Gadget

Mostrando entradas con la etiqueta SQL Server. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL Server. Mostrar todas las entradas

miércoles, 23 de julio de 2014

Oracle: Optimització SELECT amb LIKE, UPPER i PrepareStatement

www.oracle.com

Optimització SELECT, LIKE, UPPER, PrepareStatement

Quan comences a treballar en un projecte, es bó anar anotant totes aquelles millores que poden ser incloses a la següent versió.
Una de les més habituals es l'optimització de les sentències d'accés a BB.DD. (i possiblement de tot el disseny de la BB.DD), que si no poden ser optimitzades en una primera instància, caldrà revaluar-les a posteriori.

Al següent enllaç he trobat informació força interessant sobre una sèrie de punts a tenir en compte per a diverses BB.DD. com Oracle, MySQL, SQL Server.
PasExemple
Crear la sentència amb UPPER
SELECT first_name, last_name, phone_number
FROM employees
WHERE UPPER(last_name) = UPPER('Rincewind')
Crear un índex sobre el camp amb UPPER
FBI - Function Based Index
CREATE INDEX emp_up_name
ON employees (UPPER(last_name));
Coordinar amb el Database Manager la actualització de les estadístiques (DBMS_STATS)Per defecte els FBI no s'utilitzen per al càlcul del execution plan.
Consulta a Oracle algunes altres advertències com, per exemple, incidències amb les funcions.Oracle Database cannot convert data in all cases, even when conversion is explicitly requested.
En el cas de PrepareStatement es important tenir en compte:
- El ? ha de estar sense cometes.
- Les cometes s'afegeixen al assignar la variable

sql_inst="SELECT * FROM C01001 WHERE UPPER(DESCRIPTION) LIKE ? ";
...
stmt.setString(1, "%"+Bean.getDescription().toUpperCase()+"%");

Nota: Per al cas de SQLServer, el procediment difereix una mica, consulltar l' article complert per a obtenir més informació.



Enllaços relacionats:




viernes, 20 de diciembre de 2013

Aturar serveis SQLServer amb Scripts per fer BackUp a xarxa.

Aturar serveis SQLServer

En molts casos les aplicacions petites no tenen previst cap mena de sistema de BackUp i cal improvisar algun. Vet aquí uns passos que poden ser útils per a aquesta feina, segons a quin nivell vulguis arribar:



  1. Aturar serveis SQLServer manualment + còpia
  2. Aturar serveis des de script sense forçar el Administrador
  3. Fer la còpia a xarxa

Aturar serveis SQLServer + còpia

A priori aquesta es una part força simple i facil de realitzar. Normalment es pot aturar un servei amb la instrucció net stop servei
Opció (Windows 7)
Interactiu (si ets administrador)
Ho pots fer directment amb l'opció Administrar i el botó d'aturar el servei

Batch Interactiu(Malgrat ser administrador)
Per a fer-ho amb línia de comandes, cal executar forçar l'execució com administrador (Run As- Executa'l com a Adminsitrador)
NET STOP MSSQL$SQLEXPRESS
NET STOP SQLWriter

Ja pots fer la còpia de les carpetes de dades

Aturar serveis des de script sense forçar el Administrador

Per a fer-ho, cal un truc, un accés directe indicant que cal executar-ho com a Administrador.
Pas
Crear un batch amb les instruccionsNET STOP MSSQL$SQLEXPRESS
NET STOP SQLWriter
Crear accés directe i modificar-lo per marcar el flag d'Administrador


Fer la còpia a xarxa

Quan un script s'executa en el context del Administrador, no hi han les connexions a la xarxa que té el usuari normal.
Com aconseguir fer la còpia a la xraxa, doncs?
L'única manera que he trobat es partir-ho en 2 pasos que executarà el usuari:
Pas
Afegir al batch d'aturada de SQLServer els passos de còpia localset v_origen=C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data
set v_desti=C:\TEMP\MSSQL\Data
ROBOCOPY "%V_ORIGEN%" "%v_desti%" /S /TEE /NC /NS /NJH /NJS /NP /XX /XJ /R:0
Crear accés directe i modificar-lo per marcar el flag d'AdministradorVist en el pas anterior.
Crear un 2on Batch que faci la còpia a xarxa. En aquest no cal permisos d'Administradorset v_origen=C:\TEMP\MSSQL\Data
set v_desti=Y:\BackUp\SQLDATA
ROBOCOPY "%V_ORIGEN%" "%v_desti%" /S /TEE /NC /NS /NJH /NJS /NP /XX /XJ /R:0






lunes, 22 de julio de 2013

SQL Server end-of-life. Com conèixer la versió instal·lada.

SQL Server
http://www.microsoft.com/en-us/default.aspx

SQL Server end-of-life

SQL Server, com totes les bases de dades, tenen un cicle de vida per tal de donar de menjar als fabricants.

Aquest cicle de vida requereix conèixer les versions que tens instal·lades, i aquí pots veure com fer-ho amb SQL Server sense requerir cap accés especial:

Opció 1: Consulta fitxer Error Log.

Localitza el directori de la versió que vols revisarC:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG
Selecciona el fitxer ERRORLOG.logEdita'l amb Notepad.exe
Busca la primera línia i tindrà un aspecte semblant al següent.
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86)
Copyright (c) Microsoft Corporation
Express Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) (Hypervisor)

Opció 2: consulta SQL Properties

Arrenca el SQL Server Configuration Manager.
Està accessible també amb mmc:
C:\WINDOWS\system32\mmc.exe /32 C:\WINDOWS\system32\SQLServerManager10.msc

Amb botó esquerre mirar les propietats de SQL Server Services


Enllaços relacionats:

http://support.microsoft.com/kb/321185
http://support.microsoft.com/lifecycle/

domingo, 22 de abril de 2012

L'embolic de les llicències MS SQLServer

Quan decideixes desenvolupar una aplicació, la selecció de la BB.DD. sempre es una feinada.


  • MySql es una de les més utilitzades per ser gratuita. Pertany des de fa temps a oracle.com
  • Oracle XE es una altre opció gratuïta amb limitacions que pot utilitzar-se.
  • Per últim tenim a SQLServer de Microsoft. A la següent pàgina: SQLServer (Spanish) hi ha un comparador de les versions de SQL. Des de la gratuïta a la versió Datacenter.
Apa! A començar....

Enllaços relacionats:

SQL Server: Conèixer la versió instal·lada.