Like humans, the database is a docile and friendly understanding in every command given, unfortunately, sometimes does not apply vice versa, we are not docile and do not understand the "command" given database.
Database can sometimes "grunt" in many ways, be it in the form of decreased performance, error, or even a report that the results do not match. All of us can minimalisasi, even before it happens.
SQL and RDBMS
Optimization can be done in different ways, with the understanding on database performance tuning and best practice from various sources, you can have a strong fundamental in optimizing database performance.
Some of the techniques and methods may require different treatment, depending on the database you use.
For example, performance improvements can be done from the administrative database, such as Configuration gurasi files and Peng-updatean service or security packs, which each database is unique and distinctive techniques.
Then, with consideration of compatibility, is there any optimization that can be done in general?
There are a set of methods and techniques commonly applied when you are working with RDBMS (Relational Database Management System), all may not be implemented because you can depend on the environment of each application, but at least you can either gunakannya as a guide and reference for establishing the system the best accordance with the conditions faced.
Optimization via the SQL command that role no less important. The core of SQL itself is a command to do the (retrieval), the addition (insertion), modification (updating), and elimination (deletion) of data, along with functions that support management and database administration.
SQL itself is a programming language or the standard for RDBMS. Although the language is called, may be a little awkward when we take the SQL programming language, more familiar, if there is a C programming, Visual Basic, Java, Delphi, and so on.
Languages included in the latter is called imperative programming, the language that is easily shaped core instructions. Meanwhile, included in SQL declarative programming, a form of expression or statement.
In development, SQL-divided for more variety in the extension so that a variety of birth such as SQL / PSM (Persistent Stored Modules), which is a standard ANSI / ISO, T-SQL (transact-SQL) and Microsoft's SyBase, PL / SQL (PL is a stands for Procedural Language) used by Oracle, which later developed into PL / pgSQL is to use PostgreSQL.
Quite confusing, is not it? Fortunately the concept and basic elements such as in the SQL statement, query, expression, or clause be applied to the public every SQL extension.
Our discussion of the theory ends up here, here are some simple optimization you can do to prevent or at least fix the problems, and improve the performance of your RDBMS.
Index
Optimization of the first problems is we index, of course you know that the index can increase the speed of the search on the desired record. However, you must be quite selective in choosing the fields that need to be in the index, because not all fields need.
Like reading books, or scan the search process will be read from beginning to end of page. In the field of the index, do a search index scan, or read on the index, not directly on the table concerned.
Meanwhile, the search is done directly by reading the record for the record on the table with a table scan.
Whether the index scan is always faster than the table scan? Does not appear to have also, table scan can be faster to work with any record in the number of relatively small, or when the application requires reading the whole table.
Otherwise access the records in a large field on a certain index scan operation can reduce the reading I / O is not so rare that the performance more quickly.
As a benchmark, you can determine the index in the field is often used, for example, fields that are frequently accessed by WHERE clause, JOIN, ORDER BY, GROUP BY.
Defining Data Types
Type of data is a problem that's easy-so easy. In the capacity, type of data that is too small or too large for a field, can cause a time bomb that cause problems as the data is rapidly growing every day.
Determining the appropriate type of data requires analysis and accuracy is good. For example, we need to know when we use the data type char or varchar.
Accommodate both the characters, the difference between char provides a fixed storage size (fi xed-length), while the size of varchar to provide storage in accordance with the contents of data (variable-length).
General criterion is to use the data type char if the fi eld for the data with a consistent long. For example, zip code, month and consists of two digits (01 to 12), and so on. Varchar used if the data you want to have saved a long varied, or use the varchar (max) if the size exceeds 8000 bytes.
Allow Do not Allow Null
If possible, reduce the use of field which allows a null value. Instead, you can assign a default value in the field.
Sometimes rancu null value in intepretasi programmers and can lead to error logic programming. In addition, the field takes null bytes so that the additional burden on the queries that access them.
Query Easier legible
Because SQL is a declarative language, it is not surprising if you make a query shape nan long sentences even though probably only for the purpose of displaying one field!
Do not leave your query to read and difficult to understand, unless you really intend to create a headache to anyone who saw your query. Long queries written in clear 1baris will make modifi cause and understanding, would be far better if you enter a query in a format that is easily digested.
Election letters large and small can also facilitate the reading, for example, consistent with the write SQL keyword in capital letters, and add comments if necessary.
Avoid SELECT *
Select keywords that may be the most frequently used, because the optimization in the SELECT command is likely to improve overall application performance. \
SELECT * is used to perform queries that are all fields in a table, but if you only want to process a particular field, then you should write down the field who want to access it, so that your query becomes SELECT field1, field2, field3, and so on (do not care about the program code which is the longer). This will reduce the traffic load and network lock on the table, especially if the table has many fields and are large.
Limit the ORDER BY
Use ORDER BY to sort the data to function, the consequences have to add the burden of queries, because the process will add one more, the sort process.
Therefore, use the ORDER BY only if really needed by your application.
Or if possible, you can do pengurutan on the client side and not on the server. For example with a data component in the first grid and sort on the grid is based on the needs of users.
Subquery Or JOIN
Sometimes an instruction can be written in the form of a subquery or JOIN command, it is recommended you prioritize the use of JOIN as in the case of the general will result in faster performance.
Nevertheless, the query process is an art, there is always the possibility that subquery to work faster than JOIN, for example, in conditions of
JOIN is too much, or logic query that has not been optimal.
Use WHERE in SELECT
"Where there is sugar in there, there is ant." Programmers for database, saying it needs to be put dimodifi "where there is no SELECT WHERE", to remind the importance WHERE clause as a condition to filter the records so that minimize the network load.
When a table with the amount of data processed is large, is also going to lock the table so that complicate the initialization of the table by other users.
Even if you intend to call the whole record, to use the WHERE is a good habit.
If you have used the WHERE at the beginning of the query, then whenever you want to add a certain condition, you can connect with the query clause and followed by the desired condition.
But what if you use the WHERE really do not have any conditions? You can write a condition that true worth, for example, SELECT .... WHERE 1 = 1. Even open source tools that work phpMyAdmin for MySQL database mena ngani always include a default clause in the WHERE 1 SELECT command, where number 1 means that the MySQL on the true value.
Speed Access Plans
WHERE 1 = 1 and WHERE 0 <> 1 is the same condition that resulted in a true value. However, in this case you better use WHERE 1 = 1 than WHERE 0 <> 1. This is because operator = is processed more quickly than the operator <>.
From the performance side, the order in which operators are processed most quickly are:
1. =
2. >,> =, <. <= 3. LIKE 4. <>
Not every operator can disubtitusikan conditions such as a simple example above, but prioritaskanlah use of the service the fastest.
Limit the number of Record
Imagine you are displaying the content of a table using the SELECT, and the fact table has millions of records that are not expected to appear entirely.
A worse scenario can still happen, the query is accessed by hundreds of other users in the same time!
For that, you need to limit the number of records which has the potential to restore a large number of record (unless it really needed), the SQL Server, you can use the service at the TOP in the SELECT command.
For example SELECT TOP 100 name ... will show a record 100 top-name field.
If using MySQL, you can use the Limit for the same purposes.
Limit the use of Function
Use the functions provided by SQL are necessary.
For example, if you find the following query: SELECT name FROM tbl_teman WHERE ucase (name) = 'ABC', seem to want to search queries that have a record of data contains "abc", ucase function is used to change the contents of the field name to uppercase and compared with the constant "ABC" to ensure that all data "abc" will appear, although written with small letters, large, or a combination.
But, try to change query to be tbl_teman SELECT name FROM WHERE name = 'ABC', look at this query does not use ucase function. Whether the result is the same as the first query? If your database is not case-sensitive (and usually by default is not case-sensitive), the results of both queries are the same. This means, in this case you do not actually need to use the function ucase!
Read from Left to Right
Queries that you write will be processed from left to right, eg there is a query kondisi1 AND WHERE kondisi2 AND kondisi3, then kondisi1 will first be evaluated, and then kondisi2, kondisi3, and so on. Of course, with the assumption that conditions have not prioritized / categorized by using parentheses.
Logic AND operator will direct the false value is found at any of the false, then place the conditions that most likely has a false value on the far left position. This is so that SQL does not need to evaluate the situation next time find one of the conditions have been valued false.
If you choose the confused conditions which are feasible position terkiri as possible falsenya same or can not be predicted, select the conditions for a more simple process.
Images in Database
Database is not only as a text-only storage, but can also form a picture. If saying that a meaningful picture of a million words, it does not mean we have to provide storage seukuran of a million words for one picture! Perhaps the better the performance of the database if you only save a link ataulokasi image in the database, compared to physical store image.
Unless you have no other choice, for example, because of security reasons or lack of storage space for your image than in a database.
But, clearly if you can physically separate the image from the database, the database size and the burden will be relatively reduced drastically, as the back-up and migration will be more easy to do.
Performance Measurement
There are tools Optimizer which vary for each RDBMS, you can use it as a guide to improve the performance of queries, where you can find out how long the execution of the operation or what is a query.
If you find a query does not appear optimal, berusahalah re-write the query with the techniques and methods that better. The more queries that can be optimized, the better the performance of your application. Especially when the query frequency is relatively high.
Back-up
Make a back-up automatically periodically, and should test procedure Simulate restore the database and take into account the time needed to make the system recover if something happens that is not expected in a database.
Make back-up process at the time in which the activity is relatively low in order not to disrupt the operation.
Many Road to Rome
Give a few programmers on the problem, then you may get some solutions berbedabeda. Many alternatives that can be created to produce something, but of course we want the best alternative.
Therefore, please do not hesitate to try re-write your query in other ways if you see a possibility of performance improvements, for example, a query on the following snippet:
WHERE substring (name, 1,1) = 'b'
Query above will take the record with the character name is the first column "b", so the record will show the contents as "Budi", "Badu", "Benny" and so on. Another way to produce the same record is as follows:
WHERE name LIKE 'b%'
Results show that the second query will be the same, but the resulting performance (especially for large records) will be different. LIKE conditions will generally work faster than with the substring function.
Another example is a more complex queries such as beri-kut:
NIP SELECT name FROM tbl_pegawai WHERE dept = 'IT' OR city
= 'Jakarta' or division = 'programmers'
Note the above query has three conditions separated by OR clause. Another alternative is to write the following query:
NIP SELECT name FROM tbl_pegawai WHERE dept = 'IT'
UNION ALL
NIP SELECT name FROM tbl_pegawai WHERE city = 'Jakarta'
UNION ALL
NIP SELECT name FROM tbl_pegawai WHERE division = 'programmers'
While writing the query to be more long term, could be al-ternatif this will be better. Why? Assuming the field have dept index, while the field division of the city and does not index, the first query will not use the index and table scans. Unlike the second query, the index will remain to be done on the part of the query that will produce the performance that is relatively better.
Ah ... Only thin Beda!
Of course there are still many other techniques that can not be all covered in this article. In between (or perhaps all) of the optimization techniques discussed above, you may find that after a sample tested with the performance data before and after the optimization was not at all significant, is slight, or no difference at all!
It is true, I spesifi with hardware that has been increasing, the data is relatively small, and the simple plot, you probably will not find a significant difference.
But if you are ready to face the challenges of handling larger applications, the difference between with and without optimization will be very real, with pema-Haman and good coding habits, you will be able to produce applications that are also better.
There is no one to apply the optimization you may know as early as possible in your application development system.
Even if an application to perform well enough, does not mean that after further optimization efforts.
Especially if you expect the application is able to develop further, there is never a perfect word for a system application, but each system there is always the opportunity to become more useful. One of them always looking for ways to better
MORE NEXT
Http://blog.sqlauthority.com/
Http://blogs.msdn.com/queryoptteam/
Http://www.sql-server-performance.com
Database can sometimes "grunt" in many ways, be it in the form of decreased performance, error, or even a report that the results do not match. All of us can minimalisasi, even before it happens.
SQL and RDBMS
Optimization can be done in different ways, with the understanding on database performance tuning and best practice from various sources, you can have a strong fundamental in optimizing database performance.
Some of the techniques and methods may require different treatment, depending on the database you use.
For example, performance improvements can be done from the administrative database, such as Configuration gurasi files and Peng-updatean service or security packs, which each database is unique and distinctive techniques.
Then, with consideration of compatibility, is there any optimization that can be done in general?
There are a set of methods and techniques commonly applied when you are working with RDBMS (Relational Database Management System), all may not be implemented because you can depend on the environment of each application, but at least you can either gunakannya as a guide and reference for establishing the system the best accordance with the conditions faced.
Optimization via the SQL command that role no less important. The core of SQL itself is a command to do the (retrieval), the addition (insertion), modification (updating), and elimination (deletion) of data, along with functions that support management and database administration.
SQL itself is a programming language or the standard for RDBMS. Although the language is called, may be a little awkward when we take the SQL programming language, more familiar, if there is a C programming, Visual Basic, Java, Delphi, and so on.
Languages included in the latter is called imperative programming, the language that is easily shaped core instructions. Meanwhile, included in SQL declarative programming, a form of expression or statement.
In development, SQL-divided for more variety in the extension so that a variety of birth such as SQL / PSM (Persistent Stored Modules), which is a standard ANSI / ISO, T-SQL (transact-SQL) and Microsoft's SyBase, PL / SQL (PL is a stands for Procedural Language) used by Oracle, which later developed into PL / pgSQL is to use PostgreSQL.
Quite confusing, is not it? Fortunately the concept and basic elements such as in the SQL statement, query, expression, or clause be applied to the public every SQL extension.
Our discussion of the theory ends up here, here are some simple optimization you can do to prevent or at least fix the problems, and improve the performance of your RDBMS.
Index
Optimization of the first problems is we index, of course you know that the index can increase the speed of the search on the desired record. However, you must be quite selective in choosing the fields that need to be in the index, because not all fields need.
Like reading books, or scan the search process will be read from beginning to end of page. In the field of the index, do a search index scan, or read on the index, not directly on the table concerned.
Meanwhile, the search is done directly by reading the record for the record on the table with a table scan.
Whether the index scan is always faster than the table scan? Does not appear to have also, table scan can be faster to work with any record in the number of relatively small, or when the application requires reading the whole table.
Otherwise access the records in a large field on a certain index scan operation can reduce the reading I / O is not so rare that the performance more quickly.
As a benchmark, you can determine the index in the field is often used, for example, fields that are frequently accessed by WHERE clause, JOIN, ORDER BY, GROUP BY.
Defining Data Types
Type of data is a problem that's easy-so easy. In the capacity, type of data that is too small or too large for a field, can cause a time bomb that cause problems as the data is rapidly growing every day.
Determining the appropriate type of data requires analysis and accuracy is good. For example, we need to know when we use the data type char or varchar.
Accommodate both the characters, the difference between char provides a fixed storage size (fi xed-length), while the size of varchar to provide storage in accordance with the contents of data (variable-length).
General criterion is to use the data type char if the fi eld for the data with a consistent long. For example, zip code, month and consists of two digits (01 to 12), and so on. Varchar used if the data you want to have saved a long varied, or use the varchar (max) if the size exceeds 8000 bytes.
Allow Do not Allow Null
If possible, reduce the use of field which allows a null value. Instead, you can assign a default value in the field.
Sometimes rancu null value in intepretasi programmers and can lead to error logic programming. In addition, the field takes null bytes so that the additional burden on the queries that access them.
Query Easier legible
Because SQL is a declarative language, it is not surprising if you make a query shape nan long sentences even though probably only for the purpose of displaying one field!
Do not leave your query to read and difficult to understand, unless you really intend to create a headache to anyone who saw your query. Long queries written in clear 1baris will make modifi cause and understanding, would be far better if you enter a query in a format that is easily digested.
Election letters large and small can also facilitate the reading, for example, consistent with the write SQL keyword in capital letters, and add comments if necessary.
Avoid SELECT *
Select keywords that may be the most frequently used, because the optimization in the SELECT command is likely to improve overall application performance. \
SELECT * is used to perform queries that are all fields in a table, but if you only want to process a particular field, then you should write down the field who want to access it, so that your query becomes SELECT field1, field2, field3, and so on (do not care about the program code which is the longer). This will reduce the traffic load and network lock on the table, especially if the table has many fields and are large.
Limit the ORDER BY
Use ORDER BY to sort the data to function, the consequences have to add the burden of queries, because the process will add one more, the sort process.
Therefore, use the ORDER BY only if really needed by your application.
Or if possible, you can do pengurutan on the client side and not on the server. For example with a data component in the first grid and sort on the grid is based on the needs of users.
Subquery Or JOIN
Sometimes an instruction can be written in the form of a subquery or JOIN command, it is recommended you prioritize the use of JOIN as in the case of the general will result in faster performance.
Nevertheless, the query process is an art, there is always the possibility that subquery to work faster than JOIN, for example, in conditions of
JOIN is too much, or logic query that has not been optimal.
Use WHERE in SELECT
"Where there is sugar in there, there is ant." Programmers for database, saying it needs to be put dimodifi "where there is no SELECT WHERE", to remind the importance WHERE clause as a condition to filter the records so that minimize the network load.
When a table with the amount of data processed is large, is also going to lock the table so that complicate the initialization of the table by other users.
Even if you intend to call the whole record, to use the WHERE is a good habit.
If you have used the WHERE at the beginning of the query, then whenever you want to add a certain condition, you can connect with the query clause and followed by the desired condition.
But what if you use the WHERE really do not have any conditions? You can write a condition that true worth, for example, SELECT .... WHERE 1 = 1. Even open source tools that work phpMyAdmin for MySQL database mena ngani always include a default clause in the WHERE 1 SELECT command, where number 1 means that the MySQL on the true value.
Speed Access Plans
WHERE 1 = 1 and WHERE 0 <> 1 is the same condition that resulted in a true value. However, in this case you better use WHERE 1 = 1 than WHERE 0 <> 1. This is because operator = is processed more quickly than the operator <>.
From the performance side, the order in which operators are processed most quickly are:
1. =
2. >,> =, <. <= 3. LIKE 4. <>
Not every operator can disubtitusikan conditions such as a simple example above, but prioritaskanlah use of the service the fastest.
Limit the number of Record
Imagine you are displaying the content of a table using the SELECT, and the fact table has millions of records that are not expected to appear entirely.
A worse scenario can still happen, the query is accessed by hundreds of other users in the same time!
For that, you need to limit the number of records which has the potential to restore a large number of record (unless it really needed), the SQL Server, you can use the service at the TOP in the SELECT command.
For example SELECT TOP 100 name ... will show a record 100 top-name field.
If using MySQL, you can use the Limit for the same purposes.
Limit the use of Function
Use the functions provided by SQL are necessary.
For example, if you find the following query: SELECT name FROM tbl_teman WHERE ucase (name) = 'ABC', seem to want to search queries that have a record of data contains "abc", ucase function is used to change the contents of the field name to uppercase and compared with the constant "ABC" to ensure that all data "abc" will appear, although written with small letters, large, or a combination.
But, try to change query to be tbl_teman SELECT name FROM WHERE name = 'ABC', look at this query does not use ucase function. Whether the result is the same as the first query? If your database is not case-sensitive (and usually by default is not case-sensitive), the results of both queries are the same. This means, in this case you do not actually need to use the function ucase!
Read from Left to Right
Queries that you write will be processed from left to right, eg there is a query kondisi1 AND WHERE kondisi2 AND kondisi3, then kondisi1 will first be evaluated, and then kondisi2, kondisi3, and so on. Of course, with the assumption that conditions have not prioritized / categorized by using parentheses.
Logic AND operator will direct the false value is found at any of the false, then place the conditions that most likely has a false value on the far left position. This is so that SQL does not need to evaluate the situation next time find one of the conditions have been valued false.
If you choose the confused conditions which are feasible position terkiri as possible falsenya same or can not be predicted, select the conditions for a more simple process.
Images in Database
Database is not only as a text-only storage, but can also form a picture. If saying that a meaningful picture of a million words, it does not mean we have to provide storage seukuran of a million words for one picture! Perhaps the better the performance of the database if you only save a link ataulokasi image in the database, compared to physical store image.
Unless you have no other choice, for example, because of security reasons or lack of storage space for your image than in a database.
But, clearly if you can physically separate the image from the database, the database size and the burden will be relatively reduced drastically, as the back-up and migration will be more easy to do.
Performance Measurement
There are tools Optimizer which vary for each RDBMS, you can use it as a guide to improve the performance of queries, where you can find out how long the execution of the operation or what is a query.
If you find a query does not appear optimal, berusahalah re-write the query with the techniques and methods that better. The more queries that can be optimized, the better the performance of your application. Especially when the query frequency is relatively high.
Back-up
Make a back-up automatically periodically, and should test procedure Simulate restore the database and take into account the time needed to make the system recover if something happens that is not expected in a database.
Make back-up process at the time in which the activity is relatively low in order not to disrupt the operation.
Many Road to Rome
Give a few programmers on the problem, then you may get some solutions berbedabeda. Many alternatives that can be created to produce something, but of course we want the best alternative.
Therefore, please do not hesitate to try re-write your query in other ways if you see a possibility of performance improvements, for example, a query on the following snippet:
WHERE substring (name, 1,1) = 'b'
Query above will take the record with the character name is the first column "b", so the record will show the contents as "Budi", "Badu", "Benny" and so on. Another way to produce the same record is as follows:
WHERE name LIKE 'b%'
Results show that the second query will be the same, but the resulting performance (especially for large records) will be different. LIKE conditions will generally work faster than with the substring function.
Another example is a more complex queries such as beri-kut:
NIP SELECT name FROM tbl_pegawai WHERE dept = 'IT' OR city
= 'Jakarta' or division = 'programmers'
Note the above query has three conditions separated by OR clause. Another alternative is to write the following query:
NIP SELECT name FROM tbl_pegawai WHERE dept = 'IT'
UNION ALL
NIP SELECT name FROM tbl_pegawai WHERE city = 'Jakarta'
UNION ALL
NIP SELECT name FROM tbl_pegawai WHERE division = 'programmers'
While writing the query to be more long term, could be al-ternatif this will be better. Why? Assuming the field have dept index, while the field division of the city and does not index, the first query will not use the index and table scans. Unlike the second query, the index will remain to be done on the part of the query that will produce the performance that is relatively better.
Ah ... Only thin Beda!
Of course there are still many other techniques that can not be all covered in this article. In between (or perhaps all) of the optimization techniques discussed above, you may find that after a sample tested with the performance data before and after the optimization was not at all significant, is slight, or no difference at all!
It is true, I spesifi with hardware that has been increasing, the data is relatively small, and the simple plot, you probably will not find a significant difference.
But if you are ready to face the challenges of handling larger applications, the difference between with and without optimization will be very real, with pema-Haman and good coding habits, you will be able to produce applications that are also better.
There is no one to apply the optimization you may know as early as possible in your application development system.
Even if an application to perform well enough, does not mean that after further optimization efforts.
Especially if you expect the application is able to develop further, there is never a perfect word for a system application, but each system there is always the opportunity to become more useful. One of them always looking for ways to better
MORE NEXT
Http://blog.sqlauthority.com/
Http://blogs.msdn.com/queryoptteam/
Http://www.sql-server-performance.com




August 26, 2009 1:25 PM
Thx for the info
August 31, 2009 2:30 PM
makasih info nya.. salam
September 1, 2009 5:47 PM
artikel menarik bro, nice to find this
September 8, 2009 2:10 PM
that's really nice info, my friend :)
September 23, 2009 6:49 AM
ilmunya bagus mas, klo bisa saya coba..tapi kayakna susah ya..hehe
pasang iklan, iklan gratis, jual beli
July 11, 2010 12:02 AM
thanks for sharing us this article :)
http://ekos06.student.ipb.ac.id
August 13, 2010 11:01 PM
[b][url=http://soft-buy-oem-7.com/item/2260-Adobe-Creative-Suite-5-Master-Collection.html]Adobe Creative Suite 5 Master Collection - $249.95[/url]
[url=http://soft-buy-oem-7.com/item/2134-Windows-7-Ultimate-64-bit.html]Windows 7 Ultimate 64 bit - $79.95[/url]
[url=http://soft-buy-oem-7.com/item/1535-Windows-XP-Professional-with-Service-Pack-3.html]Windows XP Professional with Service Pack 3 - $59.95[/url]
[url=http://soft-buy-oem-7.com/item/2272-Office-Professional-Plus-2010-64-bit.html]Office Professional Plus 2010 64-bit - $79.95[/url]
[url=http://soft-buy-oem-7.com/item/2259-Adobe-Photoshop-CS5-Extended.html]Adobe Photoshop CS5 Extended - $69.95[/url]
[url=http://soft-buy-oem-7.com/item/1826-CorelDRAW-Graphics-Suite-X4.html]CorelDRAW Graphics Suite X4 - $119.95[/url]
[url=http://soft-buy-oem-7.com/item/2256-AutoCAD-2011.html]AutoCAD 2011 - $199.95[/url]
[url=http://soft-buy-oem-7.com/item/2262-Norton-360-Version-4.0-Premier-Edition.html]Norton 360 Version 4.0 Premier Edition - $49.95[/url]
[url=http://soft-buy-oem-7.com/item/2299-Adobe-Creative-Suite-5-Master-Collection-for-MAC.html]Adobe Creative Suite 5 Master Collection for MAC - $259.95[/url]
[url=http://soft-buy-oem-7.com/item/2295-Adobe-Photoshop-CS5-Extended-for-MAC.html]Adobe Photoshop CS5 Extended for MAC - $69.95[/url]
[url=http://soft-buy-oem-7.com/item/2296-Adobe-Dreamweaver-CS5-for-MAC.html]Adobe Dreamweaver CS5 for MAC - $69.95[/url]
[url=http://soft-buy-oem-7.com/item/1832-Microsoft-Office-2008-Standart-Edition-for-Mac.html]Microsoft Office 2008 Standart Edition for Mac - $119.95[/url]
[url=http://soft-buy-oem-7.com/item/1996-Mac-OS-X-10.6-Snow-Leopard.html]Mac OS X 10.6 Snow Leopard - $29.95[/url]
[url=http://soft-buy-oem-7.com/][img]http://soft-buy-oem-7.com/img/baner/big1.jpg[/img][/url]
cheap downloadable oem software, [url=http://soft-buy-oem-7.com/]Mac Readiris[/url]
[url=http://soft-buy-oem-7.com/]office trial software[/url] windows vista wallpapers storefront software
free adobe photoshop cs4 serial numbers [url=http://soft-buy-oem-7.com/]oem software in[/url] ms office 2007 enterprise
[url=http://soft-buy-oem-7.com/]software for grocery store[/url] where to buy cheap software
[url=http://soft-buy-oem-7.com/]to buy microsoft office software[/url] adobe creative suite 3 buy
software volume discount [url=http://soft-buy-oem-7.com/]buy adobe creative suite 4 production premium in uk[/url]
[url=http://www.asociaciondetransportistasautonomos.com/foro/viewtopic.php?f=12&t=5955]video shop software[/url]
[url=http://careers.dot.gov/refer.asp]error no se puede tener acceso en la unidad de red coreldraw[/url]
[url=http://horiconandbeyond.com/blog/?p=179&cpage=1]latest macromedia flash software[/url]
[url=http://www.stephanie-rice.net/viewtopic.php?f=12&t=182245]software stores houston[/url]
[url=http://darkknightsofwar.com/forum/index.php?topic=54807.new#new]discount microsoft office[/url][/b]
August 15, 2010 4:51 AM
Great post. I like this...
April 27, 2011 2:19 AM
Thank you for this informative post.
June 3, 2011 10:01 AM
nice info, good article.
January 24, 2012 7:46 AM
sya ikut mwndukung mas bro...