Sunday, August 25, 2013

MSSQL Backup Checks

I have a few scripts here that I got from my colleagues to check the recent backup on all database in your MSSQL server. This will help us monitor if we have recent backups available. Specially when the your backup job history is not available. 

The script below checks the recent backups on all the databases in your SQL server.
use master
  go
  select
@@servername as ServerName,
db.name, 
test.UserName,
test.BackupSize, 
test.Duration, 
test.BackupAge, 
test.FinishDate, 
test.BackupType,
test.DeviceType,
test.BackupLocation, 
GETDATE()
from sysdatabases db
left join (
  select cast(database_name AS varchar(30)) AS [DBName],
   cast(bs.user_name AS varchar(30)) AS [UserName],
 str(cast(bs.backup_size AS decimal(20,2)) / 1048576 ,10,2) + ' MB' AS [BackupSize],
 cast(datediff(n,bs.backup_start_date,bs.backup_finish_date) AS varchar(5)) + ' min.' AS [Duration],
 cast(datediff(dd,bs.backup_finish_date,Getdate()) AS varchar(10))  AS [BackupAge],
 convert(varchar(20),bs.backup_finish_date) AS [FinishDate],
 case when bs.type = 'D' then 'Full'
      when bs.type = 'I' then 'Diff'
      when bs.type = 'L' then 'Log'
      when bs.type = 'F' then 'FileGroup' end as [BackupType],
     case when mf.device_type = 2 then 'Disk'
      when mf.device_type = 5 then 'Tape'
      when mf.device_type = 6 then 'Pipe'
      when mf.device_type = 7 then 'Virtual'
      when mf.device_type in (102, 105, 106) then 'Permanent' end as [DeviceType],
 mf.physical_device_name as [BackupLocation]
  from
 msdb..BACKUPSET bs,
 msdb..backupmediafamily mf
  where 
 mf.media_set_id = bs.media_set_id
 and bs.backup_set_id in (
  select max(backup_set_id) 
  from msdb..BACKUPSET 
  where type = 'D'
  group by database_name)
  ) test
on test.DBName = db.name
where db.name <> 'tempdb'

The script below checks the backups for a specific database. You can take advantage of the WHERE clause where you can specify which specific Backup would you like to check per databases.

SELECT TOP 10
s.database_name,
m.physical_device_name,
CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,
CAST(DATEDIFF(second, s.backup_start_date,
s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken,
s.backup_start_date,
CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,
CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BackupType,
s.server_name
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
WHERE s.database_name = DB_NAME() and s.type='D'-- Remove this line for all the database and s.BackupType='D'
ORDER BY backup_start_date DESC, backup_finish_date
GO

Till my next blog entry. :)

Monday, June 10, 2013

Unboxing of MyPhone B88i

MyPhone B88i is one of the cheapest phone in the Philippine market nowadays at 699PhP. This is a basic phone with a very nice design. Fits exactly at hand. If you need a phone without spending too much. MyPhone B88i is right for you. Plus its dual sim so no more hassle in bringing two phones. :-)

Some of its features are as follows:
Dual sim
Bluetooth
FM radio, MP3 and MP4 player
VGA Camera with LED flash*
SD card expandable  up to 8Gb
*LED flash also functions as flash light.

There are two points that I didn't like on this phone. First is its screen size is small at 1.8" 128x160 pixels. Although the font size is big so its easy to read the text message. Last it's not Wap enabled. Well that's one of the requirements that I usually looked at when buying a phone. It has to be internet ready. But because I need a phone right away for my mother. I considered buying it. Anyway its MyPhone. So you can expect quality.. :-D Plus it comes with a one year warranty. :-D

So there you go. That's the MyPhone B88i Duo. Feel free to drop your opinions/questions on the comments below.

Front

Back



Accessories



Wednesday, March 6, 2013

Health Check - MSSQL

Health check is one of the frequent task a DBA is doing. In MSSQL, there are a lot of things that we should look at to further check if our instance is healthy. Here are some of them.


1. sp_helpdb - it outputs all the related information on the database/s. This summarizes the status of all your databases.
2. Check the services - well if you want to make sure that your instance is up and running, you can try to consider to logon to the server and to the instance as well. 
3. Using T-SQL - there are a bunch of queries available out there you can use. This query will help us identify the instance uptime as well as if the SQL Agent is running.

USE master;
SET NOCOUNT ON
DECLARE @crdate DATETIME, @hr VARCHAR(50), @min VARCHAR(5)
SELECT @crdate=crdate FROM sysdatabases WHERE NAME='tempdb'
SELECT @hr=(DATEDIFF ( mi, @crdate,GETDATE()))/60
IF ((DATEDIFF ( mi, @crdate,GETDATE()))/60)=0
SELECT @min=(DATEDIFF ( mi, @crdate,GETDATE()))
ELSE
SELECT @min=(DATEDIFF ( mi, @crdate,GETDATE()))-((DATEDIFF( mi, @crdate,GETDATE()))/60)*60
PRINT 'SQL Server "' + CONVERT(VARCHAR(20),SERVERPROPERTY('SERVERNAME'))+'" is Online for the past '+@hr+' hours & '+@min+' minutes'
IF NOT EXISTS (SELECT 1 FROM master.dbo.sysprocesses WHERE program_name = N'SQLAgent - Generic Refresher')
BEGIN
PRINT 'SQL Server is running but SQL Server Agent <<NOT>> running'
END
ELSE BEGIN
PRINT 'SQL Server and SQL Server Agent both are running'
END

4. Checking the transaction log space - when dealing with performance, its interesting to look at how huge our transaction log space. Doing so will help prevent from encountering connectivity issues with the database caused by the transaction logs.You can use a dbcc command to check. So that you can run your existing transaction log backups if necessary.

dbcc sqlperf(logspace)

5. Check disk space utilization 

Those I mentioned are the top three things I usually consider in doing some checks in MSSQL. Remember, if there's let say a performance degradation we have to look a lot of things like the blocking processes, database space usage as well as in the server part like the disk I/O and stuffs. We'll talk about that some other time. Thanks for dropping by. See you later.

Sunday, February 24, 2013

MySQL Import Export


There will come a time that you need a database copy from one server to another specially when you're doing some test and other stuffs on your data. Below are some tips I've used when doing a database export or import using MySQL. I've also posted some links that I referred too.

Exporting Data
The mysqldump utility – is one way of database backup to be able to transfer an instance to another database or server. It contains create table as well populating the data. It requires the following: SELECT privileges for the dump tables; SHOW VIEW for dumped views; LOCK TABLES if the --single-transaction option is not used;

SYNTAX:
mysqldump -p -uusername database_name table_name > Filename

Example:

1.    Login to instance

[root@localhost mysql]# bin/mysql -uadmin -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.0.95-log MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use presentation
Database changed
mysql> show tables
    -> ;
+------------------------+
| Tables_in_presentation |
+------------------------+
| innodb_table           |
| myisam_table           |
| mysqlimport_tab        |
+------------------------+
3 rows in set (0.01 sec)

mysql> exit
Bye

2.    Dumping a single table in a database.

[root@localhost mysql]# bin/mysqldump -p --lock-all-tables -uadmin presentation myisam_table > dump_presentation.sql
Enter password:

3.    Dumping all databases

[root@localhost mysql]# bin/mysqldump -p --lock-all-tables -uadmin --all-databases > dump_presentation_all.sql
Enter password:

Note: If the Location is not stated, the dump file will be created on the mysql base or home directory.
[root@localhost mysql]# ls -lrt
total 20692
-rw-r--r-- 1 root  mysql    2552 Dec 16  2011 README
-rw-r--r-- 1 root  mysql   19071 Dec 16  2011 COPYING
-rw-r--r-- 1 root  mysql    6387 Dec 16  2011 INSTALL-BINARY
-rwxr-xr-x 1 root  mysql    1153 Dec 17  2011 configure
drwxr-xr-x 4 root  mysql    4096 Dec 17  2011 man
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 docs
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 tests
drwxr-xr-x 3 root  mysql    4096 Dec 17  2011 share
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 support-files
drwxr-xr-x 5 root  mysql    4096 Dec 17  2011 sql-bench
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 scripts
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 bin
drwxr-xr-x 9 root  mysql    4096 Dec 17  2011 mysql-test
drwxr-xr-x 3 root  mysql    4096 Dec 17  2011 include
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 lib
-rw-r--r-- 1 root  root  8390761 Aug 15 16:15 myisam_dump_tabs.sql
-rw-rw-rw- 1 mysql mysql 4194304 Aug 15 16:22 myisam_dump_tabs.txt
-rw-r--r-- 1 root  root      750 Aug 28 06:40 dump_testisam.sql
-rw-r--r-- 1 root  root      750 Aug 28 07:21 dump_presentation.sql
drwxr-x--- 5 mysql mysql    4096 Aug 28 07:21 data
-rw-r--r-- 1 root  root  8390761 Aug 28 07:21 dump_presentation_all.sql

The use of SQL commands – is another way of database backup. It uses the command SELECT ... INTO OUTFILE to write the selected row to a file in formats like CSV, XML(applicable to 5.5 and higher versions).

SYNTAX:
SELECT * FROM Table_Name INTO OUTFILE ‘Filename';
SELECT * FROM Table_Name INTO OUTFILE ‘Filename.csv‘
   FIELDS TERMINATED BY ',';
mysql -uroot -p --xml -e 'SELECT * FROM DB_name.TABLE_name' > Filename.xml (Available on 5.5 and higher versions)

Example:

1.    Login to the instance and use the database where the table to be backup is located.

[root@localhost mysql]# bin/mysql -uadmin -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.0.95-log MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use presentation
Database changed
mysql> show tables
    -> ;
+------------------------+
| Tables_in_presentation |
+------------------------+
| innodb_table           |
| myisam_table           |
| mysqlimport_tab        |
+------------------------+
3 rows in set (0.01 sec)

mysql> exit
Bye

2.    Select the data that is needed for backup and then specify the location of the file where it is written.

mysql> select * from myisam_table into outfile '/usr/local/mysql/outfile_myisam_table.sql';
Query OK, 1048576 rows affected (0.32 sec)

mysql> exit
Bye
You have new mail in /var/spool/mail/root
[root@localhost mysql]# ls -lrt
total 24796
-rw-r--r-- 1 root  mysql    2552 Dec 16  2011 README
-rw-r--r-- 1 root  mysql   19071 Dec 16  2011 COPYING
-rw-r--r-- 1 root  mysql    6387 Dec 16  2011 INSTALL-BINARY
-rwxr-xr-x 1 root  mysql    1153 Dec 17  2011 configure
drwxr-xr-x 4 root  mysql    4096 Dec 17  2011 man
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 docs
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 tests
drwxr-xr-x 3 root  mysql    4096 Dec 17  2011 share
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 support-files
drwxr-xr-x 5 root  mysql    4096 Dec 17  2011 sql-bench
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 scripts
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 bin
drwxr-xr-x 9 root  mysql    4096 Dec 17  2011 mysql-test
drwxr-xr-x 3 root  mysql    4096 Dec 17  2011 include
drwxr-xr-x 2 root  mysql    4096 Dec 17  2011 lib
-rw-r--r-- 1 root  root  8390761 Aug 15 16:15 myisam_dump_tabs.sql
-rw-rw-rw- 1 mysql mysql 4194304 Aug 15 16:22 myisam_dump_tabs.txt
-rw-r--r-- 1 root  root      750 Aug 28 06:40 dump_testisam.sql
-rw-r--r-- 1 root  root      750 Aug 28 07:21 dump_presentation.sql
drwxr-x--- 5 mysql mysql    4096 Aug 28 07:21 data
-rw-r--r-- 1 root  root  8390761 Aug 28 07:21 dump_presentation_all.sql
-rw-rw-rw- 1 mysql mysql 4194304 Aug 28 07:57 outfile_myisam_table.sql

Importing Data

SOURCE command – it is a SQL statement use to run a batch command.

Note: Better if it will be used on a blank database to properly copy the contents of the dump file.

SYNTAX:
mysql> source file_name or mysql> \. file_name

Example:

Source:
mysql> use presentation;
Database changed
mysql> select count(*) from myisam_table;
+----------+
| count(*) |
+----------+
|  1048576 |
+----------+
1 row in set (0.00 sec)

Destination:
mysql> create database temp_loc
    -> ;
Query OK, 1 row affected (0.03 sec)

mysql> use temploc
ERROR 1049 (42000): Unknown database 'temploc'
mysql> use temp_loc
Database changed
mysql> source /usr/local/mysql/dump_presentation_all.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
...
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql> select count(*) from myisam_table;
+----------+
| count(*) |
+----------+
|  1048576 |
+----------+
1 row in set (0.01 sec)


Using LOAD DATA INFILE – is an SQL command which is the counterpart of SELECT INTO OUTFILE command. It copies the data from the source file to the specified table.

LOAD DATA INFILE ‘Filename‘ INTO TABLE Table_Name;
LOAD DATA INFILE ‘Filename‘ INTO TABLE Table_Name;
   FIELDS TERMINATED BY ',';

Example:

Source:
mysql> use presentation
Database changed
mysql> show tables;
+------------------------+
| Tables_in_presentation |
+------------------------+
| innodb_table           |
| myisam_table           |
| mysqlimport_tab        |
+------------------------+
3 rows in set (0.01 sec)

mysql> select * from myisamtable into outfile '/usr/local/mysql/outfile_myisam_table.sql';
ERROR 1146 (42S02): Table 'presentation.myisamtable' doesn't exist
mysql> select * from myisam_table into outfile '/usr/local/mysql/outfile_myisam_table.sql';
Query OK, 1048576 rows affected (0.32 sec)

Destination:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mysqlimport        |
| presentation       |
+--------------------+
4 rows in set (0.00 sec)

mysql> use mysqlimport
Database changed
mysql> show tables
    -> ;
+-----------------------+
| Tables_in_mysqlimport |
+-----------------------+
| dump_testisam         |
| myisam_dump           |
| myisam_dump_tabs      |
| myisam_table          |
| outfile_myisam_table  |
+-----------------------+
5 rows in set (0.00 sec)

mysql> create table samp_myisam_table (i int, c char) engine=myisam;
Query OK, 0 rows affected (0.01 sec)

mysql> load data infile '/usr/local/mysql/outfile_myisam_table.sql' into table samp_myisam_table;
Query OK, 1048576 rows affected (0.40 sec)
Records: 1048576  Deleted: 0  Skipped: 0  Warnings: 0


The mysqlimport utility – is another way of using the LOAD DATA INFILE SQL statement wherein it will be executed at the command line.

SYNTAX:
mysqlimport -uusername -p --options DB_name Filename

Note: Can include multiple files wherein for each filename used, it will ignore the file extension of the export files. And it will be referred as the table name where it will import the data from the export file. Upon using this, the table name must be similar to the filename of the export file.

Example:

Source:
mysql> use presentation
Database changed
mysql> show tables;
+------------------------+
| Tables_in_presentation |
+------------------------+
| innodb_table           |
| myisam_table           |
| mysqlimport_tab        |
+------------------------+
3 rows in set (0.01 sec)

mysql> select * from myisamtable into outfile '/usr/local/mysql/outfile_myisam_table.sql';
ERROR 1146 (42S02): Table 'presentation.myisamtable' doesn't exist
mysql> select * from myisam_table into outfile '/usr/local/mysql/outfile_myisam_table.sql';
Query OK, 1048576 rows affected (0.32 sec)

Destination:
[root@localhost mysql]# bin/mysqlimport -uadmin -p mysqlimport --local --delete outfile_myisam_table.sql
Enter password:
mysqlimport.outfile_myisam_table: Records: 1048576  Deleted: 0  Skipped: 0  Warnings: 0


References:
MySQL Website:
Blogs:
http://zetcode.com/databases/mysqltutorial/exportimport/
http://steveswanson.wordpress.com/2009/04/21/exporting-and-importing-an-individual-mysql-table/
http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

Saturday, July 7, 2012

Arc Mouse

Hi there! Just like to share this mouse from Microsoft.Its called Microsoft Arc Mouse. I have nothing to say about this product, as we all know this stuff. It has the same functionality as any other mouse on the market. Its just that this has a unique design which really attracts the users. Take a look at some of the pictures below.


What's inside?

The Arc Mouse

Optional details here are the features of this mouse:
  • 2.4 GHz - 30 ft. Wireless Range
  • Scroll Wheel
  • Battery Indicator
For more product details, please visit this link. Enjoy.. :)


Friday, April 27, 2012

Inside Xperia Neo V

Its been a couple of weeks since the first time I brought my new Android Phone. Yes, finally after long months of saving I finally got one. :) The brand that I brought was by Sony Ericsson which is the Xperia Neo V. At first I was like what's this? (As I was a Nokia baby back then). But after some hours of exploring, I finally understand how to use my phone. :)


Xperia Neo V





Just to be clear I'm not that geek when it comes to mobile technology. So most of the things that I'll share to you today is based on my day to day experience when using this phone. You may seek assistance to your phone manufacturer if ever you have technical questions about your phone. You may leave some comment to if you'll have questions and suggestions. :)


Let us look first at the specifications of Sony Ericsson Xperia Neo V. (Mind you, I find it hard to find this phone in the Philippines).


Camera:
Primary: 5 MP camera with LED flash
Secondary: VGA
OS: Android OS (Gingerbread), planned update to version 4
CPU: 1 Ghz
Data: WiFi, Bluetooth
Media: FM Radio, 720p Video recorder, Music/Video playback
Memory: Expandable up to 32GB, 
Note: for detailed specification you may refer to this link: Neo V


Alright now lets have a tour to my Xperia Neo V.


Home Screen.
Every standard Android smartphone has this Home screen. Its like your desktop where you can place all your shortcuts and widgets that you normally use. You can create folders in order to sort your shortcuts in the Home screen. 


Home Screen
Home Screen (with Folders)



Messaging.
In Xperia Neo V you have an option whether you'll use a full key board or a phone pad, which is good specially when your not that used to qwerty keyboard. It also has a word suggestions and can learn new words as well which you can choose even without finishing the word your typing.


Portrait Keyboard
Standard Phonepad
Word Suggestion



Landscape Keyboard

Call.
For the dial pad, nothing's change its like your normal telephone. It also has a favorites tab where all those people you marked as favorite will definitely be placed there :)


Dial Pad
Favourites



Camera.
It has a dedicated camera button on the lower right side portion of your phone. It also has a touch capture capability. You can also create a panoramic picture using the 3D camera. And of course record a 720p video for capturing your most memorable moment.


Camera



Music/Video Player.
I'm a frustrated singer on my own little way. :D You can use Neo V to listen to your favorite songs. You can create playlist according to your mood. You might as well try to play your recorded video using the HD camera or a music video. By the way the supported formats are MP4 and 3GPP. But there is application available on the Play Store that can play different files types such as MKV, FLV and AVI. 


Customization.
You can freely customize your phone according to your style. Aside from the default theme, you can also download a theme which is freely available on the Play Store. There's also Live wallpapers available. But I prefer the default once since its elegant. :) If your proud of your creations/ customization Neo V has a default screen capture so you don't need an app for that. Just long press the power button and then take a screenshot. :)


Theme
Live Wallpaper
Screen Capture



Applications.
What's the use of your smartphone without an apps. Its alright to download all the apps as much as you want. But please be reminded that this might ruin the performance of your phone. Of course all that is too much is bad even if your device is high end. So if I were you, I'll just download the apps that I normally use. In Xperia Neo V, its so easy to manage your apps, You can also freely move your apps from phone to SD card. However there are some apps that requires phone memory which is an exception. Apps are freely available on Play Store. So if ever you glanced on an application which requires payment, try to search for a free version first. It may lock some functionality but still you're able to use it for free. Its good that you spend your money for your primary necessity.


Here's a list of the apps and games that I used. I got all of them for free. So prepare yourself in an array of choices. And again I remind you to install only what you'll used frequently. This is to ensure that you'll get the most out of your android smartphone. 


Utilities:
Any.DO - This app is a scheduling assistant as well as a reminder. It helps me track the things I need to do within a day. Great app for those who have short term memory :)
StopWatch & Timer - Unfortunately, Neo V doesn't have a default Stopwatch. Good thing is that its freely available on the market so you have nothing to worry about. 
Battery Widget - I have to install this widget in order to keep track of my battery usage. It displays the remaining percentage of my battery as well as the current cellphone temperature.
Work Out Trainer - There is a free version of this app, it displays set of exercises that you can follow. In the end its all in the matter of discipline I guess. :) I have to make exercise a habit. :)
Bible - This app contains verses from the bible. If your fond of reading scriptures your free to go.
OfficeSuite - Pre-installed app on Xperia phone. Used for viewing document files.
MOBO Player -  since Neo V only supports 2 video formats, I downloaded this video player that plays the other video formats like FLV, MKV, AVI, etc. (I haven't tried others.) This is a very effective player. Its open for download for free
BPI Express Mobile -  BPI application available for android. Lets you do your BPI banking needs. 
Retro Camera and Aging Booth - app for additional camera features. There are other camera apps on Play store available to download for free. :)


Editing Tools
You can use PhotoShake, Photo Grid, PicsArt and Instagram all of them have standard editing tools for creating beautiful photos. 


Games
For the games I'll have this in bullet as some of them I know your familiar of. :)

  • Temple Run (My favorite)
  • Memory trainer
  • IQ Test
  • GeoQuiz  (My favorite)
  • Word Search  (My favorite)
  • Draw Free 
  • Ant Smasher
  • Fruit Ninja
  • Glow hackey
  • Tiki Kart 3D
  • Angry Birds Space
  • Building Tower
  • Simsimi (Its not a game, I just classified as game for organizing my application. :)) )

Social Network

I guess I'll have to enumerate this one as we all know about this stuffs. :))

  • Facebook for android
  • Twitter
  • Google Plus
  • Youtube
  • Sound Cloud
  • Instagram
  • Yahoo Messenger
  • Wordpress
My Downloaded Apps_1


My Downloaded Apps_2


Android is Google.
If your utilizing Google services, then you've chosen the right product. For me android is really for Google. You'll find a lot of pre-installed app from Google on your Neo V. You have nothing to worry about. Below is a list of some. Of course you can search for them in Play Store if ever its not installed on your phone.
  • Gmail
  • GTalk
  • Places
  • Navigation
  • Latitude
  • Google Maps

In a nutshell, there's a lot of options out there. Just make sure you assess yourself while purchasing a phone. If you know for yourself you'll go most for games and apps then you need to purchase a high end device probably a dual core processor to suit your needs. If you are into business side with a bit of apps, there's a phone in the market also that you can find. What's important is that you're enjoying the most out of your phone.  Also be contented of what you have. Don't buy electronic device so frequent. Consider also recycling to lessen e-waste in order to help save our environment.  Be contented. If you keep on comparing you'll end up hating. Thanks for taking time reading this. Have a nice day.

Last note.
Its better if you'll subscribe into a data plan in order to fully enjoy your smartphone. Specially security. There are a lot of security apps in the Play store that needs a continues internet connection. This will ensure that your phone is safe. By the way Neo V is also GPS enabled so there. Enjoy! :)