How to install .NET Framework 3.5 in Windows 7

How to install. NET Framework 3.5 in Windows 7 (pre requirement of SQL Server 2008)
The installer of SQL Server 2008 install as part of the pre-requisites the .NET Framework 3.5.

The changes in Windows 7 may prevent the installation of SQL Server 2008 because it is not allowed to install the .NET Framework 3.5 from the installer of SQL Server, which is a pre-requisite without which the SQL Server 2008 does not work.

Therefore should be installed .NET Framework 3.5 separately before installing SQL Server 2008 rather than from the installer of SQL Server 2008.

For this there are two alternatives:
Install .NET Framework 3.5 which is included as a component of Windows 7.

Download the .NET Framework 3.5 from the Microsoft site to local disk.
Select the downloaded file, usually dotNetFx35setup.exe, and using the context menu to change the properties of compatibility mode (compatibility tab) to Vista SP1. Then he must run the installer as administrator.

SQL Subselect "Bug"

Columns and column expressions from the outer query are visible in the context of the subquery, so it is technically valid query (of course, it will fail if you run it as a separate query). This is why it is good practice to use table aliases to reference columns in subqueries.

Here you have an example:


--Bug subqueries

DROP TABLE #Bugtest

CREATE table #Bugtest (Id int)

INSERT INTO #Bugtest VALUES (1)
INSERT INTO #Bugtest VALUES (2)
INSERT INTO #Bugtest VALUES (3)
INSERT INTO #Bugtest VALUES (4)
INSERT INTO #Bugtest VALUES (5)

DECLARE @UsersToDelete TABLE (IdNumber int);
INSERT INTO @UsersToDelete (IdNumber) VALUES (2)

--subselect Error
SELECT * FROM #Bugtest WHERE Id IN (SELECT Id FROM
@UsersToDelete)

If you run top subselect only, it shows an error.

--subselect OK
SELECT * FROM #Bugtest WHERE Id IN (SELECT IdNumber FROM
@UsersToDelete)

Take care making these type of sentences because it corrupts their results.

TEMP Tables in SQL

Introduction

In the world of databases is very common the use of temporary tables. While everyone knows that these kind of structures are slowing the operation of our consultations, programmers can not avoid using them because they often facilitate the resolution of problems. Store data for later use, save partial results, to analyze large amounts of rows. There are many cases where we may need these temporary tables, but you have to use them properly!.

First advice:Don't use temporary tables

The first advice that we must continue to work with temporary tables is quite simple: do not use them. And why not? Well there are plenty of reasons that we see throughout this text, but begin to see that translated using a temporary table in SQL Server:
  • The temporary tables are created in tempdb, and when you create there are several blocks on the database such as tables and sysobjects sysindex. The locks on tempdb affect the entire server.
  • When you create need to be made in writing to the disk access (not always if the tables are small)
  • When entering data into the temporary tables are again on disk activity, and we know that the disk access is usually the "bottleneck" of our system • When reading data from the temporary table have to resort back to disk. Moreover, these data read from the table often combined with others.
  • Clearing the table is to buy new locks on the tempdb database and perform operations on disk.
  • Using temporary tables inside a stored procedure we lose the advantage of having compiled the implementation plan for the stored procedure and recompiled to occur more often. The same happens when the SQL Server attempts to reuse the execution plan of a parameterized query. If the query is a temporary table is difficult to reuse implementation plan. Viewed these problems I think that there is no need to repeat our first Council.

¿What can we do?

Instead of temporary tables can improve our code is not necessary, we can use subqueries (subquery usually use a drastically improved performance to use temporary tables), using permanent tables, use tables derived. We must always remember that any alternative is good if you avoid using temporary tables (¡cursors excluded of course!) Anyway if you ever have to use it is better to know well, so let's do this.

Types of temporary tables

Temporary tables are of two types in the scope table. We have local temporary tables and global temporary tables.

  • # local: local temporary tables have a # as first character in its name and can only be used in the connection in which the user creates. When the connection drops the temporary table disappears.
  • # # The overall global temporary tables begin with # # and are visible by any user connected to SQL Server. And one more thing, these tables disappear when no user is referring to, not the user is disconnected box that I think.
  • Temp There really is a kind of temporary tables. If we create a table within the database is a temp table in real terms we can use it like any other table in any database, and is temporary in that it disappears as soon turn off the server.

Operation of temporary tables

Create a temporary table is like creating a normal table.

Let's see an example:

CREATE TABLE # TablaTemporal (Field1 int, Field2 varchar (50))

And are used on a regular basis.

INSERT INTO # TalbaTemporal VALUES (1, 'first field')

INSERT INTO # TalbaTemporal VALUES (2, 'Second field')

SELECT * FROM # TablaTemporal

As we see almost no limitations when working with temporary tables (one limitation is that they can not have restrictions Foreign KEY).

Optimizing the use of temporary tables

The use that we can give this type of tables is infinite, but always bearing in mind a few guidelines that we must continue to slow our work as little as possible. For example it's a good habit to create temporary tables with DDL commands as in the previous example (CREATE TABLE) and then fill them with INSERT statements or INSERT INTO. It is true that we can achieve it in one step with SELECT INTO, but this is worse because the locks that are acquired on system objects that last longer.

As is always better to ask the fields we want and do not put the typical SELECT * FROM ... In the same way is highly recommended that we want to qualify the rows and rows do not have that we will not use temporary tables.

Another good habit is to remove us our tables. Yes it is true that at the end of the connection local temporary tables disappear, but if we have a set of sentences over and create a temporary table at the beginning and we are not going to use the remaining time does not make sense to have that table there taking up space and memory.

If the temporary tables are a great option to increase performance is to create an index that will help us to recover data from that table (for smaller tables is an unnecessary waste because they never used the index).

Place the tempdb database on a single disk dedicated to this function will increase overall system performance if it is an intensive use of temporary tables.

And last but not least, do not think temporary tables within transactions within nor triggers. Believe that the existence of your database if you do suffer a lot.

Variables Table With

SQL Server 2000 we can declare variables of type table. Such variables have a number of advantages over temporary tables so that we can always choose to use table variables versus temporary tables. Use temporary variables are easy:

DECLARE @ VariableTabla TABLE (Field1 int, Field2 char (50))

INSERT INTO @ VariableTabla VALUES (1, 'first field')

INSERT INTO @ VariableTabla VALUES (2, 'Second field')

SELECT * FROM @ VariableTabla

Find advantages in using table variables:

  • Have a clearly defined scope. The stored procedure, function or batch in which they are declared.
  • The variables of type table has less recompile the stored procedures in those that use temporary tables.
  • Table variables do not need locks or as many resources as temporary tables.

But they also have disadvantages:

  • We can not change the table definition once declared
  • We can not use non-clustered indexes
  • You can not use INSERT INTO or SELECT INTO
  • We can not use functions in the restrictions

If we balance the pros and cons we see that in general it is better to use variables of type table that the temporary tables. Just in case you have large amounts of data into a temporary table and if we will use repeatedly is the preferred choice of temporary tables because they can define indexes.

An example

This is all very well, but as always it is best to see an example in which we can see that it is worth the effort to reprogram our code to not use temporary tables.

Let's see a simple example from the truth but to illustrate what we explain in this text. We will use the Northwind database.

This database requests are sent through three transportation companies: Speedy Express (1), United Package (2) and Federal Shipping (3). Federal Shipping Company, we offer complete all shipments that do this through the United Package price $ 10.

We decided that this is worth saving and we are going to change in our database, all open orders that have to be sent by United Package to be sent via Federal Shipping.

To make this update of the data we have several options. Let's compare three ways.

Method 1: temporary tables

declare @ st datetime

SET @ st = getdate ()

CREATE TABLE # Actualizar(int OrderId, ShipVia int, Freight money)

INSERT INTO # Actualizar SELECT OrderID, ShipVia, Freight FROM Orders WHERE ShipVia = 2 ShippedDate IS NULL

UPDATE Orders SET ShipVia = 3 Freight = 10 WHERE OrderID IN (SELECT OrderID FROM # Actualizar )

DROP TABLE # Actualizar

PRINT 'Operation completed in:' +

RTRIM (cast (datediff (ms, @ st, getdate ()) as char (10))) + 'Milliseconds'

And as a result we obtain:

(11 rows affected)

(11 rows affected)

Operation completed in 140 milliseconds

Method 1: Variables Table type

DECLARE @ st datetime

SET @ st = getdate ()

DECLARE @Actualizar Table (OrderId int , ShipVia int, Freight money)

INSERT INTO @Actualizar Select OrderID, ShipVia, Freight FROM Orders WHERE ShipVia = 2 ShippedDate IS NULL

UPDATE Orders SET ShipVia = 3 Freight = 10 WHERE OrderID IN (SELECT OrderID FROM @ Actualizar)

PRINT 'Operation completed in' +

rtrim (cast (datediff (ms, @ st, getdate ()) AS char (10))) + 'Milliseconds'

And in this case the result is:

(11 rows affected)

(11 rows affected)

Operation completed in 73 milliseconds

Method 1: No temporary tables

DECLARE @ st datetime

SET @ st = getdate ()

UPDATE Orders SET ShipVia = 3 Freight = 10 WHERE OrderID IN (SELECT OrderID FROM Orders WHERE ShipVia ShippedDate = 2 AND IS NULL)

PRINT 'Operation completed in' + rtrim (cast (datediff (ms, @ st, getdate ()) AS char (10))) + 'Milliseconds'

And finally we get:

(11 rows affected)

Operation completed in 50 milliseconds

Of course this example is not significant, and in each case we must study the situation and compare the results obtained in a working environment to know what is the best option, but anyway I hope this will serve at least for a little better to the "temporary tables".

Change collation for SQL 2008 Instance

In order to change the Default Engine Collation in SQL Server 2008 you will need to stop the (ALL) MSSQL Server instance(s) and execute the following command from the SQL Server setup media:

setup.exe /q /ACTION=RebuildDatabase /INSTANCENAME=MSSQLSERVER /SAPWD="" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SqlCollation=Latin1_General_CI_AI
Bear in mind that by using the above command you are to all intents erasing and recreating your SQL Servers MASTER database, you will invalidate an previous MASTER backups (as they will contain the previous Collation Settings) and the major knock on effect is that your Current Login and Security configuration will also disappear couple that with the fact your existing Databases will be detached from the server. There are other issues such as backup stats being lost – so be VERY careful when using the above command.

Error changing collation

If you try to change Collation in database and you get some error like this,

Msg 5030, Level 16, State 2, Line 1
The database could not be exclusively locked to perform the operation.
Msg 5072, Level 16, State 1, Line 1
ALTER DATABASE failed. The default collation of database 'BI_CONVERTION' cannot be set to Latin1_General_CI_AI.

Try this solution:
You need to get the database to single-user mode. You may need to go through and kill all of the current sessions so that you can get it to single user mode. Once you do, you essentially have an exclusive lock on the database. At that point, you shoudln't haven't a problem changing the collation.

Another way to make it:

To alter the database state to restrict the access to the single user mode, first open the Microsoft SQL Server Management Studio, and connect to a SQL Server instance. Open the list of available databases belonging to the related instance in the Object Explorer window. Right click on the sql server database that you want to set its mode to single user and select Properties in the context menu.

When you click properties menu item, the following Database Properties screen will be displayed for the selected database.

Select the Options page from the list in the left side of the screen. If you scroll down the options list for State options, you will see Restrict Access database options with three options listed in the combo box.

Restrict Access modes : Multiple, Single and Restricted modes.

If you select Single mode and click the OK button, you can either alter the database access mode to single user successfully or you will fail to change the access mode because of existence of active open connections to the Works database. The Management Studio IDE will prompt you to close all other connections to the related database for a successfull alter database option process.

To change the database properties, SQL Server must close all other connections to the database. Are you sure you want to change the properties and close all other connections?

After the alter command runs successfully, the database XXX will be displayed as shown in the Object Explorer window.

If an active connection exists other than the Management Studio, and you click the database XXX within the SQL Server Management Studio, the following warning message will be displayed:

The database XXX is not accessible. (ObjectExplorer)

If you right click on the database XXX, the following error message will be displayed.

Database 'XXX' is already open and can only have one user at a time. (Microsoft SQL Server, Error: 924)

After a database is altered as single user mode, it can be altered again back to multi user mode by running the below sql command.

ALTER DATABASE [XXX] SET MULTI_USER WITH NO_WAIT

TSQL to change collation of database in SQL 2008

This script is wonderful to change all collation columns:

declare @toCollation sysname

SET @toCollation = 'Latin1_General_CI_AI' -- Database default collate

SELECT 'ALTER TABLE ' + INFORMATION_SCHEMA.COLUMNS.TABLE_NAME +
' ALTER COLUMN ' + COLUMN_NAME + ' ' + DATA_TYPE +
CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1 then '(max)'
WHEN DATA_TYPE in ('text','ntext') then ''
WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL
THEN '('+(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)+')' )
ELSE isnull(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH),' ') END
+' COLLATE ' + @toCollation+ ' ' + CASE IS_NULLABLE
WHEN 'YES' THEN 'NULL'
WHEN 'No' THEN 'NOT NULL'

END
FROM INFORMATION_SCHEMA.COLUMNS INNER JOIN INFORMATION_SCHEMA.TABLES
ON INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = INFORMATION_SCHEMA.TABLES.TABLE_NAME
AND INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA = INFORMATION_SCHEMA.TABLES.TABLE_SCHEMA
WHERE DATA_TYPE IN ('varchar' ,'char','nvarchar','nchar','text','ntext')
AND TABLE_TYPE = 'BASE TABLE'
and COLLATION_NAME <> @toCollation


This print the scripts in console for execute it, Copy the results in console an paste into new query. Execute, and thats all!

7 capítulos que no pueden faltar en plan de administracción de riesgos

¿Para qué sirve un plan de administración de riesgos, no es algo muy formal que se usa solamente en megaproyectos?.

Las respuestas son: sirve para comunicar riesgos a todos los involucrados, no es algo muy formal y no se usa solamente en megaproyectos. Si tu proyecto es pequeño también se puede usar. Es un documento corto de unas dos o tres hojas que debe tener por lo menos estos 7 capítulos:

1. Metodología: este capítulo describe cómo vas a manejar los riesgos en el proyecto. ¿Qué tipo de análisis probabilístico aplicarás para cada factor de riesgo? ¿Vas a contratar consultores? ¿Vas a contratar algún seguro? ¿Vas a analizar otros proyectos en la organización? ¿Vas a analizar algún factor externo que pueda influir en los riesgos del proyecto?

2. Roles y responsabilidades: este capítulo describe quiénes estarán a cargo del plan de administración de riesgos y quiénes serán responsables de ejecutar las respuestas al riesgo si los eventos de riesgo ocurren. Describe también quién es el Dueño del Riesgo para cada factor de riesgo.

3. Presupuesto: describe cuánto cuesta el proceso de administración de riesgo en el proyecto, y cómo se gastará en dinero asignado. El costo podría ser expresado por ejemplo en términos de horas dedicadas. El presupuesto se divide en una parte fija (las estrategias de minimización de riesgos, que se ejecutan siempre) y en un parte variable (las acciones de contingencia, que se ejecutan solamente si el evento ocurrió).

4. Tiempo: describe cómo se combinarán las tareas relacionadas a riesgos con el resto del cronograma del proyecto. Por ejemplo en este capítulo se puede comunicar que las reuniones de análisis de riesgos se realizarán después de las
reuniones de estado del proyecto, todos los viernes.

5. Puntuación: este capítulo describe qué sistema de puntuación se usará para clasificar a los factores de riesgo, y de qué forma se usará la escala de gravedad para reaccionar. Por ejemplo: “Los factores de riesgo se clasificarán en una escala de 1 a 10 por su gravedad. Un riesgo Grave es aquel con puntuación 8 o más”.

6. Tratamiento de riesgos: este capítulo explica qué factores de riesgo serán tratados en primer lugar, ya que la lista puede ser grande y algunos riesgos pueden quedar en monitoreo pero quizás no se traten. Por ejemplo aquí se puede decir: “Los riesgos de gravedad 8 o más que tengan más del 50% de probabilidad de ocurrencia serán tratados en primer lugar”.

7. Reporte de riesgos: este capítulo describe la forma y la frecuencia de reportar los riesgos a patrocinadores y demás involucrados. Por ejemplo: “Cada lunes a la mañana recibirán una planilla electrónica describiendo los cambios en la evaluación cualitativa y cuantitativa de los 10 factores de riesgo más importantes del proyecto”.

Escribe un documento así en el próximo proyecto y vas a ver que te servirá mucho, incluso si no se lo entregas a nadie. Te puede servir para ordenar tus pensamientos con respecto a los riesgos del proyecto y tenerlos en cuenta a lo largo de todo el ciclo de vida.

La pregunta de siempre: ¿Es aplicable? ¿Te ves haciendo esto el lunes a la mañana en tu próximo proyecto?

5 ingredientes para ser un buen gerente de proyectos

¿Qué se necesita para ser un buen gerente de proyecto? ¿Qué me falta? ¿Tengo que estudiar? ¿Tengo que certificarme como PMP? Estas preguntas son muy frecuentes. ¿Qué se necesita para ser un buen PM? Cuatro cosas: ser, saber, saber hacer, querer hacer. Veamos:

Ser: personalidad.

No olvidar: la personalidad cambia con el tiempo y además, se puede cambiar. Es difícil pero se puede.

Saber: formación. Sí, hay que estudiar. Es bueno certificar porque tu esfuerzo se reconoce en cualquier lugar.

Saber hacer: habilidades. Para adquirirlas hay que practicar, para practicar hay que trabajar y buscar desafíos.

Querer hacer: motivación.

Sentido Común

Cosas que nos hacen perder tiempo en un proyecto

Escenario típico: jueves, 20:00 horas. Estás en la oficina, te duele la cabeza, repasas tu lista de tareas que preparaste a la mañana, y apenas completaste dos de las diez que tenías. ¿No tendrás un problema de productividad? Quizás no estés aprovechando tu tiempo como es debido. Veamos algunos fenómenos típicos en una oficina que nos hacen perder el tiempo todo el día, todos los días:

1. “Conócete a ti mismo”: ¿nunca pensaste que quizás la culpa sea tuya? Desperdiciadores de tiempo por culpa tuya, de ningún otro:

* Falta de prioridades o ignorar las prioridades.

* Falta de planes con tareas diarias y semanales.

* Objetivos no claros.

* Dejar cosas para después .

* Intentar hacer muchas cosas a la vez.

* Falta de autodisciplina.

* Confundirse entre “urgente” e “importante”.

2. Uso del teléfono: un gran desperdiciador de tiempo. Algunos consejos:

* Antes de llamar, planificar la conversación.

* Filtrar y agrupar las llamadas por hacer, tratar de apartar un tiempo específico para llamadas.

* Si la conversación se extiende innecesariamente, tratar de acortarla.

* Establecer momentos en el día en donde no se recibirán llamadas.

3. Uso de mensajería instantánea: el rey de las interrupciones. Una de las cosas más irritantes de la mensajería instantánea es que te interrumpe siempre en el lugar en donde estás trabajando (en tu computadora).

* Destinar una cantidad de tiempo al día para el chat.

* Evitar tener abierta la ventana del chat y las herramientas de trabajo al mismo tiempo.

* Utilizar estatus como “No disponible” o “Ausente” la mayor parte del tiempo.

4. Uso de correo electrónico: a veces parece que tu trabajo consiste en escribir y leer correos electrónicos. Para que no sea así:

* Escribir menos, usar más el teléfono si hay algo que se pueda explicar mejor por ese medio.

* Destinar una cantidad de tiempo al día para leer y redactar correos electrónicos,

* Escribir en forma contundente: eliminar palabras, frases y párrafos innecesarios.

* Pensar antes de escribir, planificar lo que queremos expresar.

* Antes de enviar, pensar siempre: “¿A quién más debo copiar en este mensaje?”

5. Visitantes inesperados: el consejo más importante

* Aprender a decir no, especialmente cuando nos preguntan si tenemos un minuto. No queda mal si decimos “ahora no tengo un minuto, pero en un momento te llamo”.

6. Reuniones: hay días en que tu trabajo parece también que consistiera en estar en reuniones. Algunas cosas para tener en cuenta:

* Desalentar las reuniones innecesarias. ¿Quizás se pueda solucionar con una llamada telefónica?

* Fijar un límite de tiempo y ajustarnos a él.

* Preparar la reunión publicando una agenda de antemano y seguirla.

Ocho consejos para mejorar la gestión de los proyectos

Éstos podrían se los consejos que le daría a un buen amigo al empezar el liderazgo de proyectos dentro de su carrera profesional:

1. Mantenernos cerca de nuestro cliente: desarrollar un diálogo constante con el cliente para ajustar el rumbo del proyecto todos los días si es necesario. Visualizar los resultados, “comenzar por el final”.

2. Cuidar a nuestro equipo: generalmente pensamos que el cliente está siempre primero. No podemos cuidar a nuestro cliente si no cuidamos a nuestro equipo. Debemos hacer cosas para el equipo en forma colectiva, y a la vez atender los problemas de cada individuo.

3. Poner atención a las promesas: no olvidar lo que prometimos entregar, aunque haya momentos de presión y de urgencias. Lo urgente no es lo importante, y lo más importante es cumplir las promesas.

4. Construir relaciones intencionalmente: la forma en que se desarrollan las relaciones entre miembros del equipo y con el cliente es decisiva para el éxito. No dejar esto librado a la suerte. Pensar al comienzo qué relaciones debemos desarrollar y nutrir, con quién y de qué forma.

5. Hacer y aprender: ir más allá de la acción. Aprovechar la acción para aprender, sacar conclusiones, preguntarse. Incorporar al proyecto sesiones para aprender nuevas cosas que se hayan descubierto.

6. Colaborar y trabajar en equipo: no hay otra forma de trabajar, no debe haberla. No esperar a que el proyecto se esté derrumbando para pedir ayuda. La ayuda debe ser consecuencia natural de la relación con todos los involucrados.

7. Escuchar más de lo que hablamos: tomarnos el tiempo para escuchar en fundamental en cualquier relación, y también en una relación de trabajo. Los líderes no sólo dan órdenes sino que también escuchan, preguntan y piden opiniones.

8. Manejar los grises: esperar lo inesperado, no todo es blanco y negro. Una de nuestras características más importantes debe ser la versatilidad.

Principales diferencias entre el PMBOK 2004 Tercera Edición y el PMBOK 2008 Cuarta Edición.

Muchos profesionales nos preguntan cuáles son las principales diferencias entre el PMBOK 2004 Tercera Edición y el PMBOK 2008 Cuarta Edición.
Aquí van las principales diferencias:

1. Se redujo la cantidad de procesos de 44 a 42, nombrándolos uniformemente como verbo-sustantivo (antes esto era irregular). Dos procesos fueron borrados, dos procesos fueron agregados y seis procesos fueron transformados en cuatro (en el área de conocimiento de contrataciones).

2. Si hizo una distinción entre el documento del plan del proyecto y otros documentos para gestionar el proyecto. Se especificó qué contiene exactamente el documento del plan del proyecto ya que esto antes no estaba claro.

3. Se aclararon las diferencias en contenido del Project Charter (Acta del Proyecto) y el Scope Statement (Enunciado de Alcance).

4. Los diagramas de conexiones entre procesos que había en cada área de conocimiento fueron reemplazados por diagramas de flujo de datos, más fáciles de entender.

5. En general, se definieron mejor los factores de la empresa que afectan a un proyecto: cómo el entorno de negocios afecta el nacimiento y desarrollo normal de un proyecto. Esta idea está presente en varios capítulos del PMBOK 2008.

6. Se eligió un enfoque estandarizado para describir el proceso de cambios al proyecto, acciones preventivas, acciones correctivas y reparación de defectos.

7. Fue agregado un nuevo apéndice (G), que describe las habilidades interpersonales que debe tener un gerente de proyecto.

Para ver en detalle todas las diferencias entre las dos ediciones, leer el Apéndice A del PMBOK 2008 Cuarta Edición.
Otro cambio/agregado resulta un punto de acercamiento del nuevo PMBOK a términos y aportes positivos de otros enfoques. Es el agregado de la “gobernabilidad” de los proyectos y de los programas.Todos hemos escuchado este concepto, en especial en ámbitos de proyectos de sistemas.Y también hemos visto/vivido cómo muchos proyectos se salen de cauce por falta de método… y terminan ingobernables.El nuevo PMKoK tiene sólo unos párrafos, pero me pareció un acierto agregar este concepto.

Fuente IIAP

Reduce Log file

Introduction

So there is a recurring question in the newsgroups and forums about the size of the file of transactions from a database of SQL Server. The problem is that the log file grows indefinitely until it is so big that eats the entire hard drive, arriving in the worst cases to fill with the resulting error:

Error: 1105, Severity: 17, State: 2 Could not allocate space for the transaction log for database 'MiBase' because the device is full. Dump the log or enlarge the device to create more space.

This error is not really a problem of SQL Server. Is normal on the server when we take into account in any database is to perform a series of maintenance tasks so that everything works properly. What we are signaling is that the log file can not grow, either because we have limited size, or because we have filled the entire disk, and if the server can not write to the log file can not continue working. But let us see a little how the data storage in SQL Server and that is the file of transactions (or log) to understand how we can resolve this error, and most importantly, how to avoid it.

File type

In any database SQL Server there are at least two files. One file is the database where the data will be stored in our tables (and other objects) and the other is the file of transactions. The transaction file is a series of records of all changes to the database and the transaction that has made each change. In the transaction log contains the start of each transaction. It also records changes to data and provides enough information to undo the modifications (if necessary later) made during each transaction. The file has extension mdf database while the transaction has ldf extension. In this case we will concentrate on the latter which is what can give us problems in terms of space.

Recovery mode

The recovery mode of the database is very important to understand where our problem arises. Depending on how we created the database several ways to recover the database in SQL Server. We have the full mode, the mass registration and simple. If you created the database did not specify any recovery mode chosen is full. To learn how you have configured one can look at the "Corporate Administrator" in the properties of the database in the "Options". Here we can see what the recovery mode of the database. We can also determine the recovery model by running sp_helpdb 'NombreBaseDatos' in Query Analyzer. If we do so in the results pane status where there is a column detailing, among other things, the model of recovery (Recovery = FULL).

Have full recovery mode means you can recover the database until the time when an error occurs or until a certain moment of time. Is the usual way in a production database.

In this recovery mode every transaction that occurs in the database (insert, modify, delete ...) was recorded in the transaction file (the. Log) so that it can reconstruct what happened to the database against time. But using this way means that the transaction file will grow indefinitely, even to be bigger than the database itself.

The solution to this growth is simple: to make backups. When we do a backup of transaction log data to pass to the backup disk is erased, leaving free space. So with every copy of the disc will remove the log file that is no longer necessary, leaving free space for recording new transactions that occur in our database.

The bad thing is that when this happens is released into space from log file, but it does not mean reducing the size of this file to disk. In this case we will have to shrink the log file in a second phase.

Operation of the log file

As they say what each BOL SQL Server transaction log file is divided logically into smaller segments called virtual log files (VLF). The virtual log files are the units of transaction log truncation. When a virtual log file no longer contains records for active transactions may truncated to ensure that there is space available for recording new transactions.

The minimum size of a virtual log file is 256 KB. The minimum size of a transaction log is 512 KB, which provides two virtual log files of 256 KB. The number and size of virtual log files in a file of transactions increases as does the log file. A log file can have a small number of small virtual log files while a log file can be larger virtual log files larger.

As we said when the transaction becomes very large the solution is to make a backup and that part of the file which makes a copy is released. That is, the VLF is emptied and once empty can be truncated to reduce the space occupied by the file on disk. To truncate the log file you can use Enterprise Manager using the "Shrink Database" or do it from Query Analyzer. I prefer Query Analyzer because it gives more of what we are doing and any errors that may appear. Let's see what we have to execute commands to do this from the Query Analyzer with TSQL.

Reduce the log file

Assuming we have a database name MiBase the steps would be:

1 - Open Query Analyzer. Execute the statement USE MiBase For the execution context is the database we want.

2 - Implement the decision CHECKPOINT To write to disk all the pages out of date (they are cached And are not yet on disk)

3 - Run the sentence EXEC sp_addumpdevice 'disk', 'CopiaMiBase', 'd: \ LogMiBase.bak' To create a hardware device to store the backup. This device is a file in d: LogMiBase.bak name. Make sure there is enough room for the backup. We can also create this device from the Corporate Administrator.

4 - Create a backup of the database MiBase BACKUP DATABASE TO CopiaMiBase This created a complete copy of the database

5 - Create a backup log file BACKUP LOG MiBase TO CopiaMiBase We have now created a copy of the log file information with the have released some of the VLF (virtual log file) Now if we look at the log file has been reduced, and if you have not Turn to the next point.

6 - Free space of the log file DBCC SHRINKFILE (MiBase_Log, 3000) This command frees space if there are any VLF gap. The first argument is the logical name of the file you want to reduce the size is 100 Goal Mb Although in this example we use size as 100Mb goal in each case will look what is the desired value and up depending on where you can get of VLF-free after you have the backup of the file Log. Once this is done and we should have a log file size reasonable.

Plan b

If we are interested not have backup of all data from the log file (or there is no space for the backup) we can follow a quicker method but does not back up this file, but that of the base Data: 1 - USE MiBase

2 - CHECKPOINT

3 - EXEC sp_addumpdevice 'disk', 'CopiaMiBase', 'd: \ LogMiBase.bak'

4 - BACKUP DATABASE MiBase TO CopiaMiBase

5 - BACKUP LOG MiBase WITH TRUNCATE_ONLY

6 - DBCC SHRINKFILE (MiBase_Log, 100)

This option simply truncates the log file the missing part of this file is not active.

A final solution

So that does not happen again is to have a maintenance plan for the base damage you make full backups and log file each time. How long is hard to say without knowing how to use the database and what is its size, but could be from several times a day to once a week. Of course it is much easier if we schedule the execution of work as the backup schedule and if you tell us some warning if you exceed the limit that we consider reasonable for the size of our files. Prevention is always better to correct the errors. Endnote I know it is not necessary to say, but if we do any task that can be dangerous is mandatory to backup the database and the database system if there are any unforeseen problems.

Temporary Tables in SQL

Introduction

In the world of databases is very common the use of temporary tables. While everyone knows that these kind of structures are slowing the operation of our consultations, programmers can not avoid using them because they often facilitate the resolution of problems. Store data for later use, save partial results, to analyze large amounts of rows. There are many cases where we may need these temporary tables, but you have to use them properly!.

First advice:Don't use temporary tables

The first advice that we must continue to work with temporary tables is quite simple: do not use them. And why not? Well there are plenty of reasons that we see throughout this text, but begin to see that translated using a temporary table in SQL Server:
  • The temporary tables are created in tempdb, and when you create there are several blocks on the database such as tables and sysobjects sysindex. The locks on tempdb affect the entire server.
  • When you create need to be made in writing to the disk access (not always if the tables are small)
  • When entering data into the temporary tables are again on disk activity, and we know that the disk access is usually the "bottleneck" of our system • When reading data from the temporary table have to resort back to disk. Moreover, these data read from the table often combined with others.
  • Clearing the table is to buy new locks on the tempdb database and perform operations on disk.
  • Using temporary tables inside a stored procedure we lose the advantage of having compiled the implementation plan for the stored procedure and recompiled to occur more often. The same happens when the SQL Server attempts to reuse the execution plan of a parameterized query. If the query is a temporary table is difficult to reuse implementation plan. Viewed these problems I think that there is no need to repeat our first Council.

¿What can we do?

Instead of temporary tables can improve our code is not necessary, we can use subqueries (subquery usually use a drastically improved performance to use temporary tables), using permanent tables, use tables derived. We must always remember that any alternative is good if you avoid using temporary tables (¡cursors excluded of course!) Anyway if you ever have to use it is better to know well, so let's do this.

Types of temporary tables

Temporary tables are of two types in the scope table. We have local temporary tables and global temporary tables.

  • # local: local temporary tables have a # as first character in its name and can only be used in the connection in which the user creates. When the connection drops the temporary table disappears.
  • # # The overall global temporary tables begin with # # and are visible by any user connected to SQL Server. And one more thing, these tables disappear when no user is referring to, not the user is disconnected box that I think.
  • Temp There really is a kind of temporary tables. If we create a table within the database is a temp table in real terms we can use it like any other table in any database, and is temporary in that it disappears as soon turn off the server.

Operation of temporary tables

Create a temporary table is like creating a normal table.

Let's see an example:

CREATE TABLE # TablaTemporal (Field1 int, Field2 varchar (50))

And are used on a regular basis.

INSERT INTO # TalbaTemporal VALUES (1, 'first field')

INSERT INTO # TalbaTemporal VALUES (2, 'Second field')

SELECT * FROM # TablaTemporal

As we see almost no limitations when working with temporary tables (one limitation is that they can not have restrictions Foreign KEY).

Optimizing the use of temporary tables

The use that we can give this type of tables is infinite, but always bearing in mind a few guidelines that we must continue to slow our work as little as possible. For example it's a good habit to create temporary tables with DDL commands as in the previous example (CREATE TABLE) and then fill them with INSERT statements or INSERT INTO. It is true that we can achieve it in one step with SELECT INTO, but this is worse because the locks that are acquired on system objects that last longer.

As is always better to ask the fields we want and do not put the typical SELECT * FROM ... In the same way is highly recommended that we want to qualify the rows and rows do not have that we will not use temporary tables.

Another good habit is to remove us our tables. Yes it is true that at the end of the connection local temporary tables disappear, but if we have a set of sentences over and create a temporary table at the beginning and we are not going to use the remaining time does not make sense to have that table there taking up space and memory.

If the temporary tables are a great option to increase performance is to create an index that will help us to recover data from that table (for smaller tables is an unnecessary waste because they never used the index).

Place the tempdb database on a single disk dedicated to this function will increase overall system performance if it is an intensive use of temporary tables.

And last but not least, do not think temporary tables within transactions within nor triggers. Believe that the existence of your database if you do suffer a lot.

Variables Table With

SQL Server 2000 we can declare variables of type table. Such variables have a number of advantages over temporary tables so that we can always choose to use table variables versus temporary tables. Use temporary variables are easy:

DECLARE @ VariableTabla TABLE (Field1 int, Field2 char (50))

INSERT INTO @ VariableTabla VALUES (1, 'first field')

INSERT INTO @ VariableTabla VALUES (2, 'Second field')

SELECT * FROM @ VariableTabla

Find advantages in using table variables:

  • Have a clearly defined scope. The stored procedure, function or batch in which they are declared.
  • The variables of type table has less recompile the stored procedures in those that use temporary tables.
  • Table variables do not need locks or as many resources as temporary tables.

But they also have disadvantages:

  • We can not change the table definition once declared
  • We can not use non-clustered indexes
  • You can not use INSERT INTO or SELECT INTO
  • We can not use functions in the restrictions

If we balance the pros and cons we see that in general it is better to use variables of type table that the temporary tables. Just in case you have large amounts of data into a temporary table and if we will use repeatedly is the preferred choice of temporary tables because they can define indexes.

An example

This is all very well, but as always it is best to see an example in which we can see that it is worth the effort to reprogram our code to not use temporary tables.

Let's see a simple example from the truth but to illustrate what we explain in this text. We will use the Northwind database.

This database requests are sent through three transportation companies: Speedy Express (1), United Package (2) and Federal Shipping (3). Federal Shipping Company, we offer complete all shipments that do this through the United Package price $ 10.

We decided that this is worth saving and we are going to change in our database, all open orders that have to be sent by United Package to be sent via Federal Shipping.

To make this update of the data we have several options. Let's compare three ways.

Method 1: temporary tables

declare @ st datetime

SET @ st = getdate ()

CREATE TABLE # Actualizar(int OrderId, ShipVia int, Freight money)

INSERT INTO # Actualizar SELECT OrderID, ShipVia, Freight FROM Orders WHERE ShipVia = 2 ShippedDate IS NULL

UPDATE Orders SET ShipVia = 3 Freight = 10 WHERE OrderID IN (SELECT OrderID FROM # Actualizar )

DROP TABLE # Actualizar

PRINT 'Operation completed in:' +

RTRIM (cast (datediff (ms, @ st, getdate ()) as char (10))) + 'Milliseconds'

And as a result we obtain:

(11 rows affected)

(11 rows affected)

Operation completed in 140 milliseconds

Method 1: Variables Table type

DECLARE @ st datetime

SET @ st = getdate ()

DECLARE @Actualizar Table (OrderId int , ShipVia int, Freight money)

INSERT INTO @Actualizar Select OrderID, ShipVia, Freight FROM Orders WHERE ShipVia = 2 ShippedDate IS NULL

UPDATE Orders SET ShipVia = 3 Freight = 10 WHERE OrderID IN (SELECT OrderID FROM @ Actualizar)

PRINT 'Operation completed in' +

rtrim (cast (datediff (ms, @ st, getdate ()) AS char (10))) + 'Milliseconds'

And in this case the result is:

(11 rows affected)

(11 rows affected)

Operation completed in 73 milliseconds

Method 1: No temporary tables

DECLARE @ st datetime

SET @ st = getdate ()

UPDATE Orders SET ShipVia = 3 Freight = 10 WHERE OrderID IN (SELECT OrderID FROM Orders WHERE ShipVia ShippedDate = 2 AND IS NULL)

PRINT 'Operation completed in' + rtrim (cast (datediff (ms, @ st, getdate ()) AS char (10))) + 'Milliseconds'

And finally we get:

(11 rows affected)

Operation completed in 50 milliseconds

Of course this example is not significant, and in each case we must study the situation and compare the results obtained in a working environment to know what is the best option, but anyway I hope this will serve at least for a little better to the "temporary tables".

Modify tables and columns in design mode

By default, in SQL Server 2008, prevent from saving changes in Design mode.
If you modify some table in design mode, probably appears the message "Saving changes is not permitted"

Desing Mode


Warning Message

For changing this option, go to Tools menu, Options, Designers tree option, and Table and Database Designers option. (You can see in next picture).

I hope that this article is usefull for you.

Returning Ranked Results with Microsoft SQL Server 2005

Numbering Rows with ROW_NUMBER

The ROW_NUMBER function assigns an ordinal value with each record returned, with the ordinal values depending on a particular ORDER BY clause used in tandem with the function. The syntax for ROW_NUMBER is: ROW_NUMBER() OVER([partition] order-by-clause)

For example:

Notice that certain customers are on this list multiple times (Nil, Dani, and Jordi). Perhaps rather than seeing all orders, ordered by sales amount, we are interested in seeing the top orders per customer. We can accomplish this with the PARTITION BY clause in the ROW_NUMBER function like so:

SELECT c.Name, o.DateOrdered, tab.TotalOrderAmount,
ROW_NUMBER() OVER (PARTITION BY c.CustomerID ORDER BY TotalOrderAmount DESC) AS BestCustomer
FROM vwTotalAmountBilledPerOrder AS tab
INNER JOIN Orders AS o ON
o.OrderID = tab.OrderID
INNER JOIN Customers AS c ON
c.CustomerID = o.CustomerID

This will return the following results:

Name DateOrdered TotalOrderAmount BestCustomer
Nil 12/1/2005 12649.9900 1
Nil 12/19/2005 265.8500 2
Jordi 12/22/2005 14.9500 1
Jordi 12/18/2005 12.4400 2
Peter 1/2/2006 620.0000 1
Dani 1/5/2006 14.9500 1
Dani 1/4/2006 9.9900 2
MC 1/3/2006 8.5000 1


¿Quienes son los Black Belt?

Los Black Belt son los ejecutores de los proyectos 6 Sigma, líderes técnicos y promotores del cambio en la organización. Son los encargados de implementar los principios, prácticas y técnicas de 6 Sigma, buscando en todo caso la máxima reducción de los costes.
Utilizan software para el tratamiento estadístico de datos como por ejemplo Minitab y/o Crystal Ball para la simulación de modelos predictivos.

Los cursos de formación para adquirir dichos conocimientos cuestan alrededor de 9.000€ + IVA, y tienen una duración aproximada de 4 semanas.

JCI, Junior Chamber International

La JCI es una organización sin ánimo de lucro pensada para los jóvenes líderes y empresarios.
Se podría decir que es como un "Campo de entrenamiento", práctico, realizando proyectos de cualquier tipo, para aprender, y mejorar las habilidades directivas, creación de negocios...etc.

Actualmente estoy como beneficiado en la JCI, y me parece muy interesante, por ésta asociación han pasado personajes como Kofi Annan, Taro Aso, Gerald Ford, Alberto de Mónaco, Jordi Pujol, etc.

Para más información os podéis dirigir a http://www.jci.cc/, http://www.jci.cat/, http://www.jciempresarisbarcelona.com/,

Blog de la asociación en la que soy beneficiario, http://jciempresarisbarcelona.blogspot.com/

PMI-MS Project

La inversión en I+D+i es “insuficiente”

Los empresarios catalanes tecnológicos suspenden al sector: la situación de las TIC en Cataluña es “más bien positiva” para el 44,3%, “fuertemente negativa” para el 37,7.

El I+D+i no está recibiendo las inversiones necesarias. Los empresarios catalanes del ámbito de las nueva tecnologías consideran que las cifras destinadas a este campo son “insuficientes” de forma global, suspendiendo a todos los agentes inversores.

La peor nota se la lleva la Administración: el gasto en I+D+i del sector público consigue un mediocre 3,5 sobre 10, tal y como concluye el informe Barómetro de las TIC 2009 que mañana presentará en Barcelona el Cercle Tecnològic de Catalunya y que contó con la participación de los empresarios TIC catalanes.

“Débil y muy frenado, esa es una de las características [del sector] aquí”, explica uno de los directivos encuestados. “Está muy fragmentado; todos creemos que sabemos hacer las cosas y todos queremos hacer las mismas cosas, y en lugar de unirnos, de juntar fuerzas, tenemos una tendencia a la fragmentación”, añade.

Los empresarios catalanes no sólo ven con malos ojos la inversión en I+D+i: tampoco aprueban con nota la situación general del sector TIC en la comunidad, que suspende por poco en la valoración general. La nota media sobre 10 no supera el 4,7: un suspenso alto, pero suspenso al fin y al cabo.

De hecho, para el 44,3% de los encuestados, el segmento catalán consigue una valoración “más bien positiva”, seguido de cerca por aquellos que lo ven bajo un prisma negativo. Para el 37,7% la situación es “fuertemente negativa” y para un 6,6 “muy negativa”, lo que arroja un balance final de un 44,3% de directivos que ven al sector de forma poco optimista.

El sector podría suspender por la mala situación de algunos de los elementos clave en su desarrollo. Los empresarios suspenden con un 4,5 las actuaciones políticas a favor del sector (a pesar de que un 36,1%, la cifra más alta considere que la legislación “más bien promueve” el mercado), con un 4,7 el uso del marketing y la promoción y tampoco aprueban la situación financiera (un 4,5, con predominio de los porcentajes que consideran “débil” o “muy débil” las cuentas de las TIC).

Como apunta uno de los directivos que participaron en el estudio, “el tema presupuestario, éste sí que es el gran reto. El grifo lo tienen las empresas madre”.

Fuente: Raquel C. Pico (siliconnews)

Retos Consultoría TIC 2009

Dentro de un contexto de mercado cada vez más competitivo y globalizado, donde se pierden las fronteras territoriales de las naciones a través de Internet, el mercado de la consultoría se enfrenta de manera especial a una constante necesidad de adaptación eficiente.

En época de crisis o recesión, esta necesaria evolución exige además retos mayores como fruto de la depreciación de los servicios y la drástica reducción en inversión en la que, en la mayoría de las ocasiones, recaen las organizaciones. En este paradigma, el mayor compromiso en la obtención de resultados, así como la voluntad de que éste -el resultado- influya positivamente en la mejora del negocio, se configuran como los grandes retos para la consultoría TIC en este 2009.

De Perogrullo sería obviar que en los incipientes y siempre constantes retos de la consultoría se halla la necesidad de incorporar equipos multidisciplinares formados por profesionales altamente cualificados con un nivel de competencias propio de las necesidades del siglo XXI. Este capital, además, debe ser equilibrado en sus funciones y costes, pues de lo contrario el paquete retributivo impediría la posibilidad de ser competitivo frente a nuestros voraces competidores.

Pero el reto de seguir existiendo en el 2009 no se satisface con un buen equipo de profesionales. El compromiso, la adecuación a la situación del mercado y, sobre todo, el valor tangible, son los auténticos retos a los que se enfrenta la consultoría TIC.

La obtención de soluciones que influyan directamente en la cuenta de resultados acaricia el paladar de las organizaciones, cada vez más necesitadas de fórmulas que refloten su posicionamiento y nivel de ventas. La consultoría debe elevar su valor revalorizándose por el ROI (retorno de la inversión), garantizando proyectos de un coste variable en función del beneficio repercutido, donde el fijo es el mínimo e indispensable para acometer el desarrollo y medirnos en coste a nuestra competencia.

Los plazos deben ser hoy más que nunca cortos y sólo en los proyectos inevitablemente grandes debe medirse por etapas, permitiendo y garantizando la confianza del cliente y de los resultados a obtener a lo largo de la consecución del proyecto.

En definitiva la consultoría debe ser hoy estandarte de modernidad y de necesidad del resultado. El equipo, el compromiso, el conocimiento, la metodología, la marca e incluso el precio son variables indiscutibles, pero, hoy por hoy, no ciñen la decisión de un cliente a la hora de contratar una consultoría en época de crisis.

El valor tangible y las métricas de ROI para obtener beneficio del trabajo encomendado son los auténticos retos que acompañarán a las consultoras en un mercado marcado por la recesión y la pérdida de posicionamiento en la mayoría de marcas y organizaciones. Sólo el trabajo bien hecho tiene unos claros resultados asociados y tangibles.

La Crisis de la Web 2.0

"Los ciclos económicos o fluctuaciones cíclicas de la actividad económica, pueden definirse como las oscilaciones de la expansión a la contracción de la economía, que ocurren entre crisis sucesivas". Esta es la definición de ciclo económico que aparece publicado en la Wikipedia. Así mismo los ciclos económicos se caracterizan por constar de 4 fases: Ascenso, Descenso, Recesión y Reactivación.

De nuevo las bases de la economía vuelven a estar de radiosa actualidad, y una vez más Internet no es ajeno a este fenómeno. Tal como ocurrió en la primera etapa comercial de Internet, antes del pinchazo de la burbuja.com, y por tanto con anterioridad al fuerte ajuste producido en este sector se vuelven a dar algunos características similares, aunque esta similitud por supuesto ni siquiera se acerca a lo vivido en aquel momento, Internet es ya un sector mucho más maduro, y aquellos errores han evitado que se volviese a crear algo similar.

Sin embargo algunos factores como la sobrevaluación de ciertas acciones de empresas tecnológicas si se ha dado en algún sector de Internet, como es el caso de las redes sociales, sin salir de nuestro país recientemente Qualitas Equity Partners, la firma de capital riesgo participada por la familia Polanco, cierra la compra del 20% de Tuenti, la red social para jóvenes que más éxito tiene en la actualidad. Esta operación supone una valoración cada usuario registrado en Tuenti en 28 €. Si nos centramos en países como EE.UU. el boom de las redes sociales ha sido extraordinario y hace meses que este sector está atravesando dificultades. ¿Cuántas redes sociales horizontales sobrevivirán? después de alcanzar algunas valoraciones estratósféricas como ocurrió con la red social líder Facebook, así el valor de Facebook alcanzó los 10.000 millones de dólares, lo que significa valorar esa compañía en la mitad que Yahoo, y 66 veces los ingresos de 2007.

Serán las redes sociales lo que fueron los marketplaces respecto de la primera burbuja de Internet, y es que una vez más las tremendas expectativas que se han generado alrededor de las redes sociales, han provocado el crecimiento de los precios de estos proyectos, entonces se producen ventas de empresas o parte estas empresas con un valor irracional, esto coincide con la aparición de nuevos millonarios que se convierten en modelo a seguir en un mercado distorsionado, olvidándose de las máximas económicas y de perseguir un equilibrio financiero en la creación de cualquier compañía, lo que provoca el nacimiento de un gran número de proyectos, esta fase del ciclo se mantiene hasta que se provoca una crisis en el sistema que tarde o temprano acaba reventando por los excesos, en este caso provocado por la crisis de las hipotecas subprime y la burbuja inmobiliaria en España, en ese momento se empieza a cerrar el flujo de crédito barato, los bancos cierran el grifo, los inversores privados se retiran, el capital riesgo deja de invertir, y si a esto le añadimos que en contextos de crisis las empresas lo primero que hacen es recortar los presupuestos publicitarios, -- aunque el peso de Internet cada vez es mayor en el reparto del paste publicitario, esto ocurre dentro de un contexto de cada vez menor inversión publicitaria en general --, lo que acabará afectando a otra importante fuente de financiación de los portales de Internet, en muchos casos la única.

En este momento muchos proyectos e inversiones en Webs de Internet, por otra parte centradas en adquirir a toda costa millones de usuarios, dejan de ser rentables. En el caso de las redes sociales esto se ve agravado por el mal funcionamiento como soporte publicitario de las redes sociales horizontales o agregadores de noticias como Digg, meneame o Fresqui o aplicaciones como Twittter donde la intencionalidad del usuario no es buscar publicidad o comprar algo, a esto se añade la difícil segmentación en contenidos para anunciantes tan necesaria para los anunciantes.

Como dice Máximo Kinast, destacado columnista de WinRed en su artículo ¿Por qué Facebook no funciona?: "porque parte de la misma estúpida idea con que nació Terra. Mientras más variada sea la oferta, más gente nos visitará y los anunciantes ganarán más dinero porque venderán más." Máximo defiende que es una cuestión de marketing, lo que funciona en la red es 'one selling proposition' algo que si se da en portales verticales o redes especializadas.

Por otra parte empiezan a escucharse voces que auguran que muchos blogs y redes de blogs desaparecerán próximamente, un sector superado por el exceso de publicidad y la huída de las estrellas, castigado por Google y falto de originalidad.

Teniendo en cuenta lo comentado, parece que poco a poco entramos en la fase de descenso de esta etapa de Internet, calificada como Web 2.0, estos días leíamos como Mobuzz TV, la televisión online pionera en España, está a punto de cerrar, sin tener claro un modelo de negocio que le asegure unos ingresos operativos, y tal como asegura su fundador Anil de Mello "Mantener la programación de Mobuzz cuesta 50.000 euros al mes y ahora mismo no podemos aguantar hasta la próxima ronda de financiación", solo las donaciones de los usuarios de Mobuzz puede evitar que sea tal vez la primera víctima.

En este contexto es necesario reflexionar sobre nuestro modelo de negocio, tal vez sea necesario cambiar de estrategia, como en su día hizo Amazon, una de las iniciativas que ha sobrevivido y se ha consolidado tras la primera burbuja de Internet, o simplemente centrarse en sobrevivir, priorizar y optimizar costes e inversiones.

Fuente:Winred.com

29 consejos de emprendedores para emprendedores

Arrancamos la última semana de este primer mes del año, y queremos ofrecerte este compendio de buenos consejos que a lo largo del año fueron compartiendo con nosotros los emprendedores participantes de la sección Entrevistas a Proyectos de Internet. El orden del mismo es alfabético y esperamos te puedan resultar de provecho.


1. ALFONSO BELMONTE (FavorBuy): Mis recomendaciones son muy claras; para cualquier emprendedor que inicia su travesía, antes de emprender debe analizar muy bien el posicionamiento, las oportunidades y la competencia.


2. ÁLVARO SÁNCHEZ (Milista.com): Para cualquier persona que esté pensando en lanzar un proyecto dentro o fuera de internet, recomendaría que hiciera un análisis muy crítico de la propuesta de valor de su producto o servicio, qué competencia existe o puede existir, tuviera claro el modelo de ingresos e hiciera una valoración realista de las necesidades de capital que requiere su proyecto.


3. ANDRÉS RIVERA (Ipoki): Sobre todo se necesita mucha ilusión por el proyecto y ser muy constante.


4. ANGEL BLESA (WedTool): Que evalúen con detenimiento el mercado al que se dirigen, que estudien a la competencia y que piensen en la necesidad que están solventando a su target de usuarios y futuros clientes. Por último recalcar que no todo servicio útil dentro de Internet tiene porque ser un gran negocio. Hay grandes ideas o utilidades cuya monetización es muy complicada y deja unos márgenes muy estrechos o no aprovechan de las economías de escala, fundamental para la rentabilidad de los proyectos en Internet.


5. CARLOS SÁEZ (Todoapuestas.net): ...Porque sentíamos ilusión, deseábamos hacer lo que hacíamos, sentíamos ganas y amor por lo que construimos, y eso es lo más importante que los que hoy en día buscan realizar un proyecto web deben tener en cuenta. Por encima del dinero que dispongas, por encima de todo, lo más importante es que realmente te guste y creas en el proyecto que pretendes llevar a cabo.


6. CARMEN FERNÁNDEZ (Micepilloporcorreo.com): Lanzar un proyecto en Internet no es diferente a lanzar un proyecto de cualquier otro tipo. Mucha gente cree que todo lo que se crea en Internet está asegurado al éxito. Pero realmente no es más ni menos que un nuevo canal, ya sea de venta, de comunicación o como escaparate. Se puede admitir que muchos de los productos que triunfan en los canales tradicionales no funcionan en Internet, donde las reglas cambian. Por ello es importante contar con un equipo de profesionales del sector sobre todo al nivel técnico. Pero para que un servicio o producto online funcione, lo esencial es contar con gente que crea en tu producto y este dispuesto a comprarlo, en resumen: clientes.


7. DANI ALCARAZ (Bloguzz): Innovar o morir, lanzarse o quedarse anclado en el pasado!


8. DANIEL SALOM (Creatiu): A un emprendedor primero de todo le recomendaría que tenga ilusión por lo que hace y sobretodo crea en ello. Es muy importante en proyectos empresariales trazarse un buen modelo de negocio y reducir al máximo los gastos fijos. Por otra parte hay que tener un cuenta que un proyecto web no triunfa de hoy para mañana, primero hay que conseguir una masa crítica de usuarios/tráfico y luego poner en marcha la maquinaria para explotar la audiencia que se tiene.


9. DAVID ORTEGA (Socialte): Yo personalmente les reconmendaría que estudien muy bien la comodidad de las aplicaciones que vayan a tener en su proyecto, ya que un sitio complejo de usar se puede ir por donde vino. Y una cosa fundamental, caso que yo no he podido, es tener algo de capital sobre todo para el tema de publicidad.


10. DIEGO LÓPEZ SALAZAR (Mirayvuela): Como recomendación creo que cada proyecto tiene sus complicaciones, pero algo que no se puede perder en ningún momento es la ilusión, y algo también complicado es no perder el foco en lo que es verdaderamente importante y lo que creemos que es verdaderamente importante.


11. ENRIQUE ÁLVAREZ (TravEnjoy): Personalmente, a cualquier persona que quisiera lanzar un proyecto en Internet, yo le recomendaría que sea constante y que no ceda en el intento; eso quizás sea lo más importante.


12. FERNANDO R. ORTEGA (Íttakus): El futuro es algo que se va dibujando en el presente. Tal y como seamos capaces de ir poniendo piedra sobre piedra, sabremos qué casa tendremos en el futuro. Pero yo no soy aquitecto, ni ingeniero, ni adivino y por tanto, el futuro, vendrá y cuando sea presente, lo valoraré.


13. FERNANDO UJALDÓN (11870.com): Dar un consejo o recomendación es demasiada responsabilidad; a modo de reflexión creo que no existe una receta que garantice el éxito de una compañía de Internet y su reconocimiento dependerá del valor que aporte el proyecto a sus usuarios, el nivel de penetración que consiga en su mercado objetivo y su capacidad de expansión y crecimiento. Considero que, hasta el momento, un gran porcentaje de proyectos de Internet tienen una alta dependencia de la publicidad y que es momento de plantear y encontrar nuevas vías de negocio.


14. FRANCISCO JAVIER LÓPEZ (Meteored.com): A los nuevos emprendedores les recomendaría sobre todo mucha paciencia con el proyecto, ya que haciendo las cosas con ilusion al final tienen su recompensa. Para mi, complementando lo anterior, en el mundo de Internet hay que crear contenido interesante para el navegante ya que eso es la base de una web con gran potencialidad de visitas.


15. JORDI CATÁ (D-Unlock): A los nuevos emprendedores (sobretodo a los que se enfocan en servicio) les comentaría que se especializen, cuando eres pequeño es dificil tocar diferentes cosas, ya que es dificil ser bueno en un tema concreto, imagenate en muchos... al principio se suele tocar diferentes cosas ya que se tienen que cubrir costes, generar ingresos, etc, pero lo importante es centrarse en los temas que sean más rentables. A parte internet es un medio lleno de oportunidades, pero como en cualquier otro proyecto lo importante es la perseverancia, constancia, voluntad y mucha paciencia de tirar todo para adelante con gran esfuerzo.


16. JORDI PEREZ (Brandea Studio): A los que estén pensando en lanzarse a una piscina sin saber si está llena o no les diría 6 cosas (yo lo he vivido cuando descarté mi empleo fijo de 5 años para establecerme como autónomo por mi cuenta):- Haz un plan de empresa, pero no te obsesiones con él. Tiene que ser una guia, no una biblia.- ten preparados varios planes de contingencia por si las cosas no salen como uno espera. Haciendo un símil, estate preparado para dar tantas vueltas a la tortilla como sea necesario para que se cueza correctamente.- Muévete, muévete, muévete.- nunca des nada por hecho, antes de que realmente lo tengas muy muy seguro. Me refiero a clientes, proyectos, presupuestos, ...- No mezcles nunca la vida profesional con la personal (tu novia o tu mujer).- que nunca decaiga el empuje de los primeros días. Se fuerte, y estate preparado para los problemas (que vendrán seguro).


17. JOS DE SCHIFFART (MiAlbum.com.es): (Ofrecer) un servicio accessible con un interfaz sencillo e intuitivo.


18. JOSÉ A. CRIADO (Tengoentradas.com): A todos aquellos que tengan una idea que piensen que puede funcionar en Internet les animo a que prueben. No hace falta grandes capitales para desarrollar la idea inicial, y un % relativamente alto de "empresas de internet" sobreviven sin demasiados problemas.


19. IKER HURTADO (Micompeticion.com): No tengo la experiencia suficiente como para recomendar, pero dos cosas sí tengo claras:- Hay que estar muy motivado, el dinero tarda mucho en llegar (si es que llega).- Hay que lanzarse en serio, todo cuesta mucho tiempo y en Internet cada vez hay más competencia y profesionalidad.


20. IVÁN RUIZ SEVILLA (Tuvendi): Mi experiencia como emprendedor, me ha ayudado a ver dos cosas:
1.- Crea un producto pensando en la rentabilidad. Hay que tener en cuenta que estamos en España y que la financiación no es comparable con la que hay en EEUU, por lo que tenemos que buscar rentabilidad lo antes posible para no quedarnos en el camino.

2.- Rodéate del mejor equipo posible. Una idea no es nada si detrás no existe un buen equipo. Crear un proyecto rentable en internet es realmente complejo, y para poder ejecutarlo debemos formar un equipo que se complementen unos con otros.


21. LORENA AMARANTE (Online Marketing Latam): (Lo nuestro) es una emprendimiento austero, sin grandes bombos, con muchas ganas e imaginación, nuestros principales recursos.


22. MIGUEL ÁNGEL DÍEZ (Red Karaoke): Mi recomendación para los que quieran lanzar un proyecto en Internet es que innoven: no todo está inventado, quedan muchas ideas por desarrollar, y aunque eso es lo más costoso y difícil también es el único camino para realizarse y tener posibilidades de triunfar fuera de España.


23. OSCAR FEITO (Shopall): Primero recomendaría estar muy convencido de lo que se está haciendo. Las cosas sólo salen con mucho trabajo, sacrificio y esfuerzo. No hay atajos. Para poder aportar esa intensidad de trabajo tienes que estar muy enfocado y convencido de lo que estás haciendo. Segundo, tú sólo no lo puedes hacer. Necesitas rodearte de la mejor gente que conozcas en cada campo, y ellos deben de estar igualmente motivados con el proyecto. Finalmente, es tan importante o más saber ejecutar un proyecto que tener una “brillante idea”. Las “ideas” por sí solas no son proyectos en Internet, hay que ir más allá del excel y el powerpoint para llevarlo a cabo.


24. PABLO MARTÍNEZ (Dilogs): Recomendaría a aquellos que están desarrollando un proyecto que lo lancen cuando crean que esta lo mínimamente maduro para que los usuarios lo utilicen y puedan dar su feedback. Son muchas las horas y dolores de cabeza que se ahorran cuando el usuario puede comentar su experiencia. Los blogs de desarrollo y todas las herramientas que acerquen a los usuarios son muy importantes hoy en día. También algo importante es que trabajen con tecnología amigable, php o python, y xhtml / css puro, harán de su proyecto algo muy liviano y fácil de gestionar.


25. RAÚL JIMÉNEZ (Minube): El consejo que le podríamos dar a un emprendedor está claro: adelante. Las ideas de por sí no valen nada, sino que hay que llevarlas a cabo con pasión. En nuestro caso, los comienzos están siendo magníficos. La acogida por parte de los usuarios ha sido excepcional, al igual que por parte del sector de Internet, y el feedback que recibimos nos ayuda muchísimo a mejorar cada día, que es nuestro principal objetivo.


26. RUBÉN BOUSO (Dinahosting): A los nuevos emprendedores les diría que Internet es un medio que ofrece grandes oportunidades pero solo para aquellos que ponen el trabajo y la dedicación necesaria para hacer realidad sus proyectos. La suerte como en todo es importante, no obstante, no conozco a nadie que haya tenido éxito en Internet sin dedicar enormes dosis de esfuerzo y viceversa.


27. VILMA MEDINA (GuiaInfantil.com): Lo que digo a los nuevos emprendedores, principalmente a la mujer que sueña en ser empresaria, es que no es necesario ser ingeniero informático o un gran diseñador para ganar dinero en Internet. Cuando empecé, no tenía la mínima idea de lo que era HTML. La clave es la calidad del producto y la segmentación del tema. Si quieres abrir una tienda de juguetes en Internet para vender en su ciudad es muy probable que vayas a bancarrota. Sin embargo, tendrás muchas posibilidades de éxito, por ejemplo, si montas una tienda especializada en muñecas de porcelana organizando una comunidad de coleccionistas en foros y blogs, vendiendo los últimos lanzamientos y productos de segunda mano, con envíos nacionales e internacionales.


28. WENCESLAO GARCÍA (Vexlan): Todo aquel que quiere lanzar un proyecto en Internet lo hace cargado de ilusión y ganas. Es necesario contar con un buen entorno, experiencia personal, un buen equipo, capacidad financiera por encima siempre de los peores escenarios y levantarse por las mañanas sabiendo tu eres el responsable de que "la maquinaria se mueva". Absténgase los adversos a la incertidumbre.


29. Y a modo de "bonus", la opinión desde WinRed.Com, del
grupo Redgiga, MANUEL TRINCADO:
Que tengan en cuenta al menos un par de puntos:
1.- El proyecto debe enfocarse en la demanda que hemos encontrado, y sobre todo, que hemos contrastado lo máximo posible. En Internet hay muchas oportunidades, pero es mejor dejar de lado ideas o proyectos si no cumplen el anterior requisito. Podemos equivocarnos de salida, esto no es malo, pero si hemos detectado una oportunidad de negocio, debemos tener un equipo flexible para poder reaccionar a los errores.
2.- Visto la primera burbuja de Internet, y la crisis financiera actual, lo mejor es ajustar lo máximo posible nuestros recursos, apostar por alianzas, colaboradores, socios, etc. que nos permita tener un equipo lo más completo posible para andar el camino que nos permita alcanzar nuestro objetivo, así como llevar la mochila sin deuda o lo más ligera posible de deuda, muchos proyectos no tienen margen de maniobra por un excesivo endeudamiento inicial.

8 maneras "Low Cost" de conseguir clientes

Finales de febrero, poco a poco va el ferrocarril arrastrando el vagón para salir de la cuesta de enero, pero sigue siendo esencial acercar CLIENTES, aquí te acercamos 8 maneras de bajo costo para ello.

1. Revisa tu libreta de contactos y de ella elabora una lista de aquellos que puedan estar directamente interesados en lo que ofreces; hazles llegar tu "promo" más inclinado en los que ellos pueden ganar con tus servicios que en lo que tú vas a ganar. Si ofreces algo gratis, mejor.

2. Facilita las maneras en las que puede conocerse tu producto/servicio. Recuerda las muestras gratis que recibes de tal o cual producto cuando acudes al supermercado: si lo tuyo es bueno, una probada bastará para que el prospecto de cliente desee más.

3. No olvides el tocar puerta por puerta. Si bien se acostumbra ahora hacer esto mediante las campañas de marketing por email, sinceramente, ¿cuántas veces las hemos tildado de spam? El 99% de los casos. La promoción física y real, si tu negocio lo permite no debería dejar de contemplarse.

4. Acudir a las ferias comerciales de tu nicho no en plan expositor sino de networking, contactando empresarios, descubriendo sus necesidades y después acercarles alguna oferta interesante.

5. Incentivar el sistema de afiliados: si uno de tus clientes te acerca a un futuro prospecto, que luego se convierte en cliente, ¿por qué no ofrecerle al primero una especie de recompensa? Ten por seguro que aumentarás el "boca a boca" de su servicio/producto.

6. Aprovechar las festividades (navidad, vacaciones, festivos...) para lanzar alguna campaña fuera de lo habitual -promoción casa por casa, descuentos especiales, ediciones especiales del producto/servicio...-.

7. Aprovechar subastas, concursos, eventos altruistas participando con el aporte del servicio/producto que ofreces y recibiendo a cambio publicidad y difusión del mismo.

8. No dejes de lado la difusión-promoción que puedes conseguir a través de las redes sociales (Facebook, Twitter, LinkedIN, Youtube...), las cuales cada vez van ganando más espacio del tiempo de navegación de los usuarios.


Adaptación y traducción libre del artículo: 25 creative ways to gain new clients - biznik.