Google Wifi Review

Wifi routers have always been a pain in the *ss for me. I live in a 3-level townhouse and it’s always been a challenge to evenly distribute the internet across all three floors. Over the past 10-15 years, I’ve tried multiple routers. From name brands like the old Linksys WRT54G router and Apple Airport Extreme, to the lesser known Almond+ by Securifi. The Almond+ actually was a great router for me. The wifi reception was great. The only downside was the router was on the third floor, so the basement internet reception was horrible. I started to do more research and came across products like eero, Google Wifi that are pretty much a pack of 3 routers that work together to give you evenly distributed internet reception.

eero vs Google Wifi

Amazon Reviews are the best! I checked out both the eero and Google Wifi and the Amazon reviews for both are amazing. Google Wifi pack of 3 is selling for 299.00 and the eero pack of 3 is selling for 454.97 (both via Amazon).

Of course Google is a larger company and prides itself in innovation, speedy updates, etc. so I decided to give them a try. (If I did not see a significant increase in my internet reception I was going to return it and try out eero.)

Google Wifi Review

Amazon shows the product as “out of stock” so I went straight to the Google store. Google has a 14 day return policy, and they sold it for the same price of 299.00, so I purchased it via Google’s store.

The package came 2 days later…

Google Wifi Review 1

Very neat packaging.

Google Wifi Review 2

Three beautiful, slick Google Wifi routers.

Google Wifi Review 3

Not too big.

Google Wifi Review 4

The instructions are literally on a one-sided card. Very easy to setup, Step 1 Plug it, Step 2 Download Google Wifi app and launch it. The Google Wifi app (itunes), was very simple and sleek looking. It didn’t take much to get all the routers up and running.

Google Wifi Review 5

Everything in the package:

  • 3 Wifi Routers
  • 3 power cords
  • 1 ethernet cable
  • 1 instruction card

Final Thoughts and Internet Speed Results

I placed one router on each floor; third floor bedroom/office, mid-level living room and basement. I ran speedtest before I turned off my old router, installed Google Wifi and ran the speedtest again to compare results. Below is a screenshot of my speedtest results. Starting from the lowest result (11:33 am) going up is the bedroom/office, living room and basement. As you can see, the download speed drops from 53.81 Mbps on the upper level to a poor 9.23 Mbps in the basement. The next three results are after installing Google Wifi. All three levels of my house are now at 64-65 Mbps.

Google Wifi Review

I created a little excel document for a clearer BEFORE and AFTER view of my internet reception.

Google Wifi Review 2

Bottom line: For 299.00, it’s cheaper than eero and well worth it! The Google Wifi app is pretty amazing with neat features such as “family time”, easy “guest network” creation, ability to change the brightness of the individual router LED lights, etc. I LOVE the Google Wifi routers.!

Stuff and Replace Function in SQL Server : Detailed Description

(This is a guest blog post by Daniel Jones (li | t | fb). Daniel is a SQL Server DBA and contributor at SQL Tech Tips. Having 2 + years of experience in SQL recovery and system infrastructure.)

In SQL Server, STUFF and REPLACE functions are used to replace the characters in a string. Both functions play an important role in Transact-SQL with performing the distinct functionality. In the following section, we are going to discuss about Stuff and Replace function in detail.

STUFF Function in SQL Server

In SQL Server, the STUFF function is utilized to replace the part of the string with some another string. Moreover it can remove the specified length of the characters in the first string and after that, insert the second string into the first string at the starting position.

Syntax of STUFF Function

STUFF ( character_expression , start , length , replaceWith_expression )


    • character_expression

This argument can be a constant, variable or may be the column of either binary or character data

    • start

It is an integer value that indicates the location from where to begin the deletion and insertion as well. In case, if start or length parameters may be negative then, it will return a null string. Besides, if start is used longer than the first-character_expression, again null string is returned. It also can be of bigint type.

    • length

Also, it is an integer that denotes the number of characters to remove. If using length longer than the first character_expression, then, deletion happens to the last character within the last character_expression. It could be of type bigint.

    • replaceWith_expression

This attribute represents same as character_expression. Even it may be a variable, constant, or columns of character or binary data. Even this expression can replace length characters from character_expression in the beginning at start

Return Types

In case, if character_expression is one of the supported character data, returns the character type data. Otherwise, gives binary data if character_expression is a single supported binary data types.


In the above parameters, if the length or start integer is negative, or if the start position is larger than the length of the primary string, then, returns the null string. Although, returns null value if the starting position is zero. If the length is longer than the first string, it has decided to remove the first character data type in the first string.

Replace Function in SQL Server

As the above function name indicates, the REPLACE function in SQL server allows to replace all the occurrences of a specified string value with another set of the string value.

Syntax of REPLACE Function

REPLACE ( string_expression , string_pattern , string_replacement )


    • string_expression

This string expression to be searched. Either it can be of character data or binary data type.

    • string_pattern

It can also be of a binary as well as character data type. In fact, it cannot be an empty string and may not exceed the maximum number of bytes that is suitable on a page.

    • string_replacement

A string_replacement argument can be of any data type either character or binary as well.

Return Types

If one of the input parameters is of nvarchar type then, returns nvarchar value; else, REPLACE gives varchar value.

In addition, if any individual argument is NULL then, returns the NULL value.

Moreover, if string-expression cannot be of type varchar or nvarchar, then, REPLACE function truncates the return range at 8,000 bytes. To provide values larger than 8,000 bytes, even string-expression may be cast explicitly to a greater value data type.


REPLACE function performs the comparison of the input, which is based on collation. In a specified collation performing a comparison, also users can use COLLATE to apply collation to the desired input.

Char(zero) is an undefined character in collation and unable to include in REPLACE function.


STUFF and REPLACE are two major SQL Server functions that have discussed in above section. Moreover, to understand the various aspects of both the functions, we have presented the syntax and parameters in detail.

Error 3241 in SQL Server

(This is a guest blog post by Daniel Jones (li | t | fb). Daniel is a SQL Server DBA and contributor at SQL Tech Tips. Having 2 + years of experience in SQL recovery and system infrastructure.)

Microsoft SQL Server Backup Error Code 3241 Restore Headeronly

Sometimes, the users of MS SQL server faced an error when they try to restore SQL database from the backup file in the SQL server. This error is known as SQL server error 3241 and it generates the below-mentioned error message.

Error 3241 SQL Server

Due to this error message, the users cannot restore the data from the backup file into SQL Server database. Therefore, in this post, we are going to discuss the reason for the occurrence of error 3241 and the relevant solutions to resolve the error.

Causes Behind the Occurrence Of the SQL Server Backup Error 3241

There are various reasons behind this error message. Some of them are described as below:

  • When a user of MS SQL Server tries to restore the data from the backup file that was created on the MS SQL Server 2014 to the SQL Server 2008 then the error message arise. This is the main cause behind the occurrence of this error.
  • The SQL error code 3241 may also occur if SQL Backup Agent Service does not have necessary access permission. To restore the database from backup file into the SQL server, the SQL Backup Agent Service should have read permission to access the folder, which contains the backup file.
  • There is also a possibility that the backup file, which was used for restoring the SQL database, is corrupted. The backup file can be corrupted if it was loaded using FTP Text Mode.

Solutions To Resolve the MS SQL Error 3241 Restore Headeronly

In this section, we are going to discuss some solution to troubleshoot the backup error 3241. These solutions are described as follows:

  • Before starting the process to restore a database from the backup file, we should check the version of SQL server. If the version of SQL server is same as that of the version in which the backup file was created then start the restore process, otherwise upgrade the SQL server database to the same or higher version.

Note: By running the command ‘SELECT @@Version’ in the SQL query window, you can check the version of SQL server.

  • There is a need for access permission to restore data from backup file using SQL Backup Agent Service. The user account, which was used to log on the SQL backup Agent service, should be specified while installing SQL server components on the server instance. SQL Backup Agent Service can get a permission to access some specific folder, where a backup file is saved from the sysadmin.
  • If the backup file was corrupted because of uploading using FTP text mode, then again restore the backup file using FTP in binary mode. If this method fails to repair the corrupted backup file then you can also take the help of SQL BAK file recovery, a third-party utility to recover backup file.

Note: To avoid the Microsoft SQL Server error code 3241, the version of SQL server should be same as that of SQL server version in which backup file is created. SQL Backup Agent Service should have necessary access permission to restore data from backup file and backup file should be upload using FTP in binary mode.


When the users try to restore the database from the backup file then sometimes they are unable to do that because of SQL server error 3241. There are various reasons behind the occurrence of this error such as older version of SQL server, backup file is uploaded using FTP binary mode, etc. Therefore, in this post, we have described the causes of the error and the possible solutions to fix the backup error code 3241.

What Should My Salary Be?

What Should My Salary Be?

There are two questions that you just don’t ask people. It can create animosity and can even cause relationships to break. One of those questions is, “how much do you make?”

(If you’re wondering what the other question is, it’s, “Who are you going to vote for?” Not a great idea to get into politics with people.)

At any rate, the problem with asking someone “how much do you make” is not just because that’s a personal/private question. It can create a judgmental atmosphere. Have you ever worked with someone who was less technical than you but somehow you found out how much they were making? And it happened to be more than you? How did you feel? How did your attitude towards that person change once you found out?

That’s why you stay away from that information. The issue arises when negotiating salary. It’s somewhat important to know what your “worth” is. How much should you ask for. Is what I am asking for possibly going to remove me from consideration?

Recently, Brent Ozar published a blog titled, “Tell Us What You Make: The 2017 Data Professional Salary Survey“. In that blog, there was a link to a quick little survey that collected information like salary, location, years of experience, etc. Of course it was all anonymous.

To my surprise, over 2000 people took the survey. Of course, the more people that take the survey, the better the information. But the flip side to that is people can fool around and enter a bunch of garbage. For example, there are a few people making over MILLION dollars as a SQL Server Analyst and Manager (see below)

What Should My Salary Be

Really? 1.45 million? I highly doubt that.

Aside from the “Who Wants to Marry a SQL Server Millionaire Analyst”, there are a couple pieces of information that we can derive from this survey:

  • Having a 4-year college degree does NOT guarantee a higher salary
  • Any one technology (SQL Server vs Oracle vs Amazon) does NOT mean a higher salary
  • Job title does not guarantee a higher salary over another, i.e. DBA vs Analyst vs Engineer
  • Number of years of experience does NOT guarantee a higher salary
  • Certifications do NOT guarantee higher salary

So you might be thinking, “what the heck does guarantee a higher salary?” Well, it depends. It all comes down to what you feel comfortable with? The trap that we should not fall into is comparing ourselves to others based on salary/income. My view is, follow your passion (whatever that is) and learn it inside out. The money will follow. Don’t get greedy and think you can ask for 200k when you just got out of college with zero years of real-world experience. Everything within reason.

Speaking about passion; I love SQL Server and just started playing around with Power BI. I will use the data in this excel document to create some interesting charts/graphs and update this post once I do!

Until then, keep learning!

FREE Microsoft eBooks!

Sometimes the best stuff is FREE!

I recently came across this Microsoft site when I was searching for whitepapers. It’s part of the Microsoft Virtual Academy. They not only have free ebooks, but they also have free virtual courses.

They offer virtual courses and free ebooks on some of the newest technology out there. There are ebooks on SQL Server 2016, Windows Server 2016, and Microsoft Azure.

I highly recommend checking them out at:

How To Study Smarter Not Harder

How To Study Smarter Not Harder

One of my “New Year resolutions” is to increase my knowledge. As an IT professional, it is crucial to stay abreast with the constant changes in technology. The new replaces the old and by the time you get around to learning the new, that becomes old. As someone who works closely with SQL Server, I find it extraordinarily cumbersome to stay abreast of the new trends and technologies. Just SQL Serve 2016 alone has so many cool new features. Imagine the constant updates with Microsoft Azure. All that can be demotivating.

According to a Forbes article, more than 40% of people make a “New Year’s resolution” and only 8% keep them. People fall victim to a lack of motivation, will power, patience, etc. etc.

I came across a video lecture on Youtube that absolutely changed my outlook on studying/learning. What I grew up thinking as “studying” was not even close. Psychology professor Dr. Marty Lobdell’s lecture is called, “Study Less, Study Smart”, and has absolutely opened my eyes to what I’ve been doing wrong my entire academic life. I have summed up his points below, but I highly recommend checking out his entire lecture here (or watch it below).

Facts vs Concepts – Dr Lobdell says that anyone can lookup facts, but concepts last a life time. Understanding concepts is most important because “googling” for facts is easy.

Recognition vs Recollection – According to Dr Lobdell, people tend to confuse “recognition” and “recollection.” Below is the definition of each:

Defintion of Recognition


Definition of Recollection

Note the second bullet for “recognition”, you need a previous encounter or knowledge to recognize something. But for “recollection”, it’s a memory. For example, kids think they are “recalling” something from memory, but in fact they are not. They are recognizing from some mental trigger. Which is why they end up not remembering it during an exam.

Sleep – Everyone needs adequate sleep. It’s only when we reach our REM state  when what we’ve studied starts to get “imprinted” into our long term memory. There has been many studies on this. Sleep is huge!

Note Taking – I used to take copious notes. Some times I would copy the entire lecture slides, but when  I got home and looked back at my notes, I was totally confused. Dr Lobdell says to take notes and then immediately after class go back and “flesh out” the notes. Add more to it since it’s fresh in your memory. If you don’t remember, you can ask a classmate or the teacher. This will help you study better at home.

Teach it / Active Recitation – When you learn something, the best way to test whether you truly understand it is to teach someone else. Find your roommate, sibling, or parent. If you live alone, Dr Lobdell says teach it to an empty chair. Just the act of speaking it out loud will help!

Mnemonics – When you need to memorize facts, use “mnemonics.” The meaning of mnemonics = anything that facilitates learning/recalling. Dr Lobdell mentions three ways: 1. Acronyms (Roy G Bv, colors of the rainbow). 2. Coined Sayings (12 Cranial Nerves). 3. Interacting Images (the weirder the image the higher  chance you will remember the subject)

SQ3R – Stands for Survey, Question, Read, Recite, Review – This is huge. Usually people tend to open the book when they are looking for an answer. Dr Lobdell says when you first get the book, open it and “survey / question” it. Meaning, skim the the pages, ask yourself questions, see the pictures, bold headers/words, get familiar with it. You are training your brain to look for answers. Then you read it. Recite it (try to teach it to someone else). If you do this thoroughly, then by exam time all you have to do is Review and you’re ready to ace it!

On to a successful 2017!

How To Decrypt Stored Procedure In SQL Server

I recently had to view the code behind a couple stored procedures in SQL Server. Usually that’s a very simple thing to do. Just right click the stored procedure, click Modify OR script-as “Create New” and it spits the entire stored procedure in a query window. Unfortunately for me, the stored procedures were encrypted so the usual method mentioned above did not work.

There are a couple blogs online that mention logging in your SQL Server via the DAC and running some scripts to see the code, but that can get daunting and time-consuming..especially to a novice.

I came across a very neat piece of software called dbForge SQL Decrypter by Devart. It’s absolutely free and easy to setup. I tried it out and it works like a charm! Check it out below:

How To Decrypt Stored Procedure In SQL Server

After installing dbForge SQL Decrypter, double click the icon and the “Connect to Server” opens:

dbForge SQL Decryptor Screenshot 1

***Note: I expanded the “Show Advanced Settings” to show that you can choose to log into your server via the DAC (Dedicated Administrator Connection). It’s not required to choose it, but I wanted to show it to you anyway.

Once you log in, you’ll notice it resembles SQL Server Management Studio’s Object Explorer. Go ahead and navigate to the stored procedure: Databases –> MyDB –> Procedures. I created a dummy encrypted stored procedure called testProcWithEncryption for demo purposes.

dbForge SQL Decryptor Screenshot 2

When you right-click the encrypted stored procedure you get the following options:

dbForge SQL Decryptor Screenshot 3

When you click on “Show DDL script“, the software decrypts the stored procedure and spits the code in the right-pane window:

dbForge SQL Decryptor Screenshot 4

Done! Wasn’t that easy?

What Else Can dbForge SQL Decrypter Do?

It has more neat features which makes it absolutely convenient to use. Below are a couple features that make is stand  even more:

Batch Decryption Wizard – If you have multiple stored procedures, functions etc, you can decrypt them all at once and save it to a new T-SQL script file.

Syntax Highlighting – People usually underestimate how annoying it is when there is no syntax highlighting. This feature makes it easy for readability and helps in easily finding what you’re looking for.

Saving Definition to a File – This is super convenient. Instead of cutting and pasting into another text file, etc.

The Best Feature of them all …

The best thing about Devart’s dbForge SQL Decrypter is that it’s absolutely free! I’ve already added it to my arsenal of must-have DBA tools. Feel free to download it yourself and try it out!

It will save TONS of time on trying to decrypt a Stored Procedure, Triggers, Views, or Function yourself.

Your 5 Favorite Blog Posts of 2016

Here are the top 5 blog posts of 2016:

1. How to Find Last Login Date of a SQL Server Login? – This was by far the most clicked on blog. It looks like a lot of people need to secure their SQL Server environments :)

2. How to Request a DoD Server Certificate – Working in the DC area, I have a lot of experience working with DISA STIGS, securing and hardening SQL Server.

3. Perfmon Create New Data Collector Set Grayed Out (FIX) – Apparently a lot of people have this issue. The good sign is that people are searching on how to FIX it!

4. How to Read SQL Server Error Log Using sp_readerrorlog – A blog on how to read through the SQL Server error log a lot faster and neater.

5. How to Create SSL Certificate for SQL Server – This goes with #2 above. The process of creating an SSL Certificate for SQL Server can be daunting. I have outlined how to do it here.

Blog Stats – 2016

Finally! A full year of traffic. I aimed to blog at least once every few days but fell short. I plan on blogging a lot more in 2017, especially with the release of SQL Server 2016 and all the cool new features it has.

Visitors Per Month 2016

As you can see, 2016 was a 10x increase of visitors compared to 2015.

Pageviews Stats for 2016

There was a +350% growth this year in page views compared to the prior year.

Visitor Stats for 2016

62% of the visitors are from the U.S., 7% from India, and the rest of the top 10 include UK, Canada, Brazil, Germany Australia, Netherlands, Singapore and Russia.

On to a great 2017!

How to View and Read SQL Server Setup Log Files

How to View and Read SQL Server Setup Log Files

Usually when something goes awry in a SQL Server, the first place that comes to mind to check is the SQL Server error log, or Windows event log. But what if the error was during SQL Server installation? What if you’re installing SQL Server and suddenly the GUI disappears? Poof! Gone! There were no pop-up errors or anything to give you a hint of where to start troubleshooting.

What do you do?

When you first kick off a SQL Server install, there are a couple directories and files that are created. The directories are time stamped and the files within the directories record a detail “process-by-process” snapshot in a plain text file for troubleshooting and record keeping.

Check out this MSDN link to all the setup files SQL Server creates during initial installation. It’s definitely a great place to start when troubleshooting install problems. Add it to your bookmarks!