Thursday, August 29, 2013

TFS 2010 Power Tools -- Error 1001 in Windows 8

PROBLEM:
When trying to install "Team Foundation Server Power Tools December 2011" in Windows 8, you get the following error: "Microsoft Team Foundation Server 2010 Power Tools -- Error 1001". Also, you cannot see "Process Editor" menu in Visual Studio "Tools" menu.
You already installed (by this order):
1. Visual Studio 2010
2. Visual Studio 2010 SP1

SOLUTION:
Choose custom install and do not install "Best Practice Analyzer"


If you find this useful, you are welcome to press one of the ads in this page.. Thanks!


Tuesday, August 13, 2013

Use MongoDB in Windows Azure

PROBLEM:
You want to use MongoDB in Windows Azure

SOLUTION:
See the following links:

  1. MongoDB Installer for Windows on Azure
  2. Securing MongoDB on Windows Azure

If you find this useful, you are welcome to press one of the ads in this page.. Thanks!


Tuesday, August 6, 2013

Performance best practices for very large tables

PROBLEM:
What are the performance best practices for very large tables?

SOLUTION:
Here is a summary of best practices for querying, monitoring, and performance tuning for your very large tables:
  • Pay attention to both the results of a query and the execution plan designed to return those results. Make it a routine exercise to scan query plans to become more familiar with how SQL Server resolves queries.
  • De-normalize your schema where possible to reduce the need to join very large tables.
  • Use table partitioning for your largest tables, and be sure when querying that the optimizer uses partition elimination whenever possible.
  • Align secondary indexes with the same table partition function to reduce partitioned table maintenance.
  • Consider using a heap instead of a clustered index, especially with a table that partially mimics a clustered index via its partition function.
  • Design indexes to be covering for larger recurring queries whenever possible, especially when creating a filtered (i.e., partial) index.
  • Use an indexed view as an alternative to a denormalized table or to materialize an aggregated dataset. The more static the underlying data, the less overhead will be required to maintain the indexed views.
  • Use summary tables with automatic (scheduled) updates as an alternative to indexed views, especially when there is less significance in the currency of the data.
  • For query monitoring, focus on the quantitative measures of Disk I/O, CPU Time, and Query Duration.
  • Use the features of the Management Data Warehouse for overall server monitoring, and use the SQL Trace data collection set for query monitoring.
  • Focus your tuning efforts on SQL code that is repeatedly run, either as a stored procedure or a SQL script, and that consumes the most server resources. Data warehouse applications tend to place the greatest pressure on Disk I/O.
  • For tuning and management of large queries, consider saving historical copies of XML execution plans to disk for later reference.


If you find this useful, you are welcome to press one of the ads in this page.. Thanks!

Tuesday, June 11, 2013

MongoDB Hardware Tips

PROBLEM:
You need some hardware tips for your MongoDB installation:
  • Buy $1k 1000 servers or $10k 100 servers?
  • Fast CPU vs. more CPU cores?
  • More RAM is good?
  • Virtualization is ok?
  • SSD is good?
  • Disable NUMA (Non-Uniform Access Memory) in BIOS?
  • File system settings?
SOLUTION:
See this: https://www.youtube.com/watch?v=19VZJ9H3LmQ

If you find this useful, you are welcome to press one of the ads in this page.. Thanks!

Sunday, June 9, 2013

Step by step guide for MongoDB sharding

PROBLEM:
What is a MongoDB sharded cluster?

SOLUTION:
While sharding is a powerful and compelling feature, it comes with significant infrastructure requirements and some limited complexity costs. As a result, use sharding only as necessary and when indicated by actual operational requirements.

Here is a step by step guide for MongoDB sharding:

Introduction to Sharding

Sharding Setup Demo

The config database

Setup Part 2 Adding the Initial Shards

Enabling sharding for a collection

Working with a sharded collection

Choosing shard keys

Process and Machine Layout

Bulk inserts and pre-splitting

Further tips and best practices

If you find this useful, you are welcome to press one of the ads in this page.. Thanks!


Tuesday, May 28, 2013

MongoDB performance tuning, indexes, explain plan, hints and profiler

PROBLEM:
What you need to know for MongoDB performance tuning?

SOLUTION:
The following links will cover performance tuning, obviously a key aspect of database administration. You can find there how to optimize the performance of operations against a MongoDB database, including both queries and write operations. Indexes of course play a key component in many cases; thus you can find also a talk about MongoDB indexes in detail. You can find there also other performance related features including the explain plan and hint commands and the profiler.

Indexes in MongoDB
https://www.youtube.com/watch?v=a7TrHP1C6qQ

Indexes types
https://www.youtube.com/watch?v=pyoOGhGDoj8

Covered Indexes
https://www.youtube.com/watch?v=boAkBnMUBnw

Hints
https://www.youtube.com/watch?v=oaTm0Kftit8

Read vs. Writes
https://www.youtube.com/watch?v=USDbDotmums

Current Operations and Kill Operations
https://www.youtube.com/watch?v=i7XEKAtRS_M

Profiler
https://www.youtube.com/watch?v=MzLmI8FNB94

Mongostat & Mongotop
https://www.youtube.com/watch?v=fEgl1DT_lDA


If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!

Wednesday, April 10, 2013

Optimizing MongoDB

PROBLEM:
How to optimize your MongoDB?

SOLUTION:
Here are some tips and tricks for optimizing your MongoDB deployment:

Design an efficient schema
1. When you’re designing your schema for MongoDB, think about the ways that you are going to access your data and the common access patterns. You want to take advantage of MongoDB’s flexible schema and design rich documents
2. A key question when designing a MongoDB schema is when to embed and when to link. Embedding is the nesting of objects and arrays inside a BSON document. Links are references between documents. Embedding is a bit like "prejoined" data. Operations within a document are easy for the server to handle. Links in contrast must be processed client-side by the application; the application does this by issuing a follow-up query.
Generally, for "contains" relationships between entities, embedding should be be chosen. Embedding documents when it should actually be linked would result in duplication of data.

Optimize your queries
Have slow database queries? Get more information on the performance of your queries using the explain feature. Using the mongo shell, invoke the explain() method on a cursor:

> db.collection.find(query).explain()

The result will be a document that contains the explain output:

{
   "cursor" : "BasicCursor",
   "indexBounds" : [ ],
   "nscanned" : 57594,
   "nscannedObjects" : 57594,
   "nYields" : 2 ,
   "n" : 3 ,
   "millis" : 108, 
   "indexOnly" : false,
   "isMultiKey" : false,
   "nChunkSkips" : 0 
}

Know your working set size
Retrieving data in RAM is orders of magnitude faster than disk. Think about the total database size in relation to the set of data that is active at any given point in time. If you want your queries to be fast, make sure that you have enough memory to hold your active working set in RAM.
Don’t forget your indexes. They take up memory too!

More Information

If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!