Tuesday, July 31, 2012
Friday, July 27, 2012
Extension Method in Javascript
//Define Extension Method over here if (!Array.prototype.forEach_Murli) { Array.prototype.forEach_Murli = function(fun) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) fun.call(thisp, this[i], i, this); } }; } function printBr(element, index, array) { document.write("
[" + index + "] is " + element); } //Call the Extension Method [12, 5, 8, 130, 44].forEach_Murli(printBr);
Thursday, July 12, 2012
Find Log space on Sql
CREATE TABLE dbo.logSpaceUsage
(
id INT IDENTITY (1,1),
logDate DATETIME DEFAULT GETDATE(),
databaseName SYSNAME,
logSize DECIMAL(18,5),
logSpaceUsed DECIMAL(18,5),
[status] INT
)
GO
INSERT INTO dbo.logSpaceUsage
(databaseName, logSize, logSpaceUsed, [status])
EXEC ('DBCC SQLPERF(logspace)')
GO
SELECT * FROM dbo.logSpaceUsage
(
id INT IDENTITY (1,1),
logDate DATETIME DEFAULT GETDATE(),
databaseName SYSNAME,
logSize DECIMAL(18,5),
logSpaceUsed DECIMAL(18,5),
[status] INT
)
GO
INSERT INTO dbo.logSpaceUsage
(databaseName, logSize, logSpaceUsed, [status])
EXEC ('DBCC SQLPERF(logspace)')
GO
SELECT * FROM dbo.logSpaceUsage
Tuesday, July 10, 2012
The difference between ‘return false;’ and ‘e.preventDefault();
Have you ever seen those two things (in the title) being used in jQuery? Here is a simple example:
The difference is that return false; takes things a bit further in that it also prevents that event from propagating (or "bubbling up") the DOM. The you-may-not-know-this bit is that whenever an event happens on an element, that event is triggered on every single parent element as well. So let's say you have a box inside a box. Both boxes have click events on them. Click on the inner box, a click will trigger on the outer box too, unless you prevent propagation. Like this:
So in other words:
$("a").click(function() {
$("body").append($(this).attr("href"));
return false;
}
That code would append the href attribute as text to the body every time a link was clicked but not actually go to that link. The return false;
part of that code prevents the browser from performing the default
action for that link. That exact thing could be written like this:$("a").click(function(e) {
$("body").append($(this).attr("href"));
e.preventDefault();
}
So what's the difference?The difference is that return false; takes things a bit further in that it also prevents that event from propagating (or "bubbling up") the DOM. The you-may-not-know-this bit is that whenever an event happens on an element, that event is triggered on every single parent element as well. So let's say you have a box inside a box. Both boxes have click events on them. Click on the inner box, a click will trigger on the outer box too, unless you prevent propagation. Like this:
So in other words:
function() {
return false;
}
// IS EQUAL TO
function(e) {
e.preventDefault();
e.stopPropagation();
}
It's all probably a lot more complicated than this and articles like this probably explain it all a lot better. Get Information of Index of Tables and Indexed Columns
Creating Index in Sql
CREATE INDEX employee_first_last_name_idx ON
employee (first_name, last_name);
Droping Index in Sql
Drop
index employee_first_last_name_idx;
Knowledge of T-SQL inbuilt functions
and store procedure can save great amount of time for developers.
Following is very simple store procedure which can display name of
Indexes and the columns on which indexes are created. Very handy stored
Procedure.
Above SP will return following information.
IndexName – IX_Address_AddressLine1_AddressLine2_City_StateProvinceID_PostalCode
Index_Description – nonclustered, unique located on PRIMARY
Index_Keys – AddressLine1, AddressLine2, City, StateProvinceID, PostalCode
USE AdventureWorks;
GO
EXEC sp_helpindex 'Person.Address'
GO
Above SP will return following information.
IndexName – IX_Address_AddressLine1_AddressLine2_City_StateProvinceID_PostalCode
Index_Description – nonclustered, unique located on PRIMARY
Index_Keys – AddressLine1, AddressLine2, City, StateProvinceID, PostalCode
Let me know if you think this kind of small tips are useful to you.
Either we can use DBCC Command also
DBCC SHOWCONTIG('dbname.dbo.tablename', 'indexname')Some example output is shown below. This particular example was from a very fragmented index from a table with around 10 million records. Each day around 1 million records are updated/and or inserted and records 60 days or older are deleted.
DBCC SHOWCONTIG scanning 'tablename' table... Table: 'tablename' (949578421); index ID: 1, database ID: 12 TABLE level scan performed. - Pages Scanned................................: 333557 - Extents Scanned..............................: 41805 - Extent Switches..............................: 262556 - Avg. Pages per Extent........................: 8.0 - Scan Density [Best Count:Actual Count].......: 15.88% [41695:262557] - Logical Scan Fragmentation ..................: 75.11% - Extent Scan Fragmentation ...................: 13.04% - Avg. Bytes Free per Page.....................: 2853.9 - Avg. Page Density (full).....................: 64.74%A low percentage for scan density is bad. A high percentage for logical scan fragmentation is bad.
To defragment your index you need to use the DBCC DBREINDEX or DBCC INDEXDEFRAG commands. DBCC DBREINDEX allows you to rebuild all indexes at once, but is an offline operation so the tables cannot be used while it is running. DBCC INDEXDEFRAG must be called for each index you want to defragment but you can continue to use the tables.
The syntax for DBCC DBREINDEX is as follows to rebuild the above index:
DBCC DBREINDEX('dbname.dbo.tablename', 'indexname')or all indexes:
DBCC DBREINDEX('dbname.dbo.tablename')You can also change the fill factor for the index, which affects how much space is left in each page with a third parameter. To make it e.g. 70, you could do this for all indexes in the table:
DBCC DBREINDEX('dbname.dbo.tablename', '', 70)After doing the above on the example table and rebuilding the index with a fill factor of 70, running DBCC SHOWCONTIG again gave the following, much better, result:
DBCC SHOWCONTIG scanning 'tablename' table... Table: 'tablename' (949578421); index ID: 1, database ID: 12 TABLE level scan performed. - Pages Scanned................................: 297679 - Extents Scanned..............................: 37210 - Extent Switches..............................: 37209 - Avg. Pages per Extent........................: 8.0 - Scan Density [Best Count:Actual Count].......: 100.00% [37210:37210] - Logical Scan Fragmentation ..................: 0.00% - Extent Scan Fragmentation ...................: 0.16% - Avg. Bytes Free per Page.....................: 2335.3 - Avg. Page Density (full).....................: 71.15%
Monday, July 2, 2012
Clear Reset All Control in a form in asp.net
Using below function we can clear or reset all the controls available on the existing pages.
#region Clear All Controls
#region Clear All Controls
public static void
ResetFields(Control control)
{
//Reset All
the textBoxes in panel.
foreach
(Control ctrl in control.Controls)
{
if
(ctrl is TextBox)
{
string
id = ctrl.ID;
((TextBox)ctrl).Text = String.Empty;
((TextBox)ctrl).Attributes["value"] = "";
}
else
if (ctrl is
DropDownList)
{
((DropDownList)ctrl).ClearSelection();
((DropDownList)ctrl).Enabled = true;
}
else
if (ctrl is
RadioButtonList)
{
((RadioButtonList)ctrl).SelectedIndex = 0;
}
else
if (ctrl is
RadioButton)
{
((RadioButton)ctrl).Checked = false;
}
else
if (ctrl is
CheckBox)
{
((CheckBox)ctrl).Checked = false;
}
else
if (ctrl is
CheckBoxList)
{
((CheckBoxList)ctrl).ClearSelection();
}
}
}
#endregion
Trim and Replace multiple string in Javascript
Using following Javascript sysntax you can replace forward slashes (‘/’) with backward slashes (‘\’) :
var strReplace = “C:\Temp\Temp1\Temp2\text.jpeg“;
strReplace = strReplace.replace(new RegExp(/\\/g),”/”);
/////////////////
function ltrim(str){
return str.replace(/^\s+/, '');
}
function rtrim(str) {
return str.replace(/\s+$/, '');
}
function alltrim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
var strReplace = “C:\Temp\Temp1\Temp2\text.jpeg“;
strReplace = strReplace.replace(new RegExp(/\\/g),”/”);
/////////////////
function ltrim(str){
return str.replace(/^\s+/, '');
}
function rtrim(str) {
return str.replace(/\s+$/, '');
}
function alltrim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
SQL SERVER – Delete Backup History – Cleanup Backup History
SQL Server stores history of all the taken backup forever. History of all the backup is stored in msdb database. Many times older history is no more required. Following Stored Procedure can be executed with parameter which takes days of history to keep. In following example 30 is passed to keep history of month.
USE msdb
GODECLARE @DaysToKeepHistory DATETIMESET @DaysToKeepHistory = CONVERT(VARCHAR(10), DATEADD(dd, -30, GETDATE()), 101)EXEC sp_delete_backuphistory @DaysToKeepHistoryGO
Sunday, July 1, 2012
Get All Database with respective sizes from your Server
with fs
as
(
select
database_id, type, size * 8.0 / 1024 size
from sys.master_files
)
select
name,
(select sum(size) from fs where type = 0 and fs.database_id = db.database_id)
DataFileSizeMB,
(select sum(size) from fs where type = 1 and fs.database_id = db.database_id)
LogFileSizeMB
from sys.databases db
OR
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
OR
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
Subscribe to:
Posts (Atom)