Posted by 좐군
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/297
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/188
Vicodin. Buy vicodin online. How l ong does vicodin stay in your system.
Buy vicodin online. Vicodin erowid. Vicodin. Vicodin overdose.
Percocet vs. lortabs. Percocet withdrawal symptoms.
Alprazolam synthesis. Alprazolam.
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/165
| 열 이름 | 데이터 형식 | 설명 |
|---|---|---|
| backup_set_id | int | 백업 세트를 식별하는 고유한 백업 세트 ID입니다. ID, 기본 키 |
| backup_set_uuid | uniqueidentifier | 백업 세트를 식별하는 고유한 백업 세트 ID입니다. |
| media_set_id | int | 백업 세트를 포함한 미디어 세트를 식별하는 고유한 미디어 세트 ID입니다. backupmediaset(media_set_id)를 참조합니다. |
| first_family_number | tinyint | 백업 세트가 시작되는 미디어의 패밀리 번호입니다. NULL일 수 있습니다. |
| first_media_number | smallint | 백업 세트가 시작되는 미디어의 미디어 번호입니다. NULL일 수 있습니다. |
| last_family_number | tinyint | 백업 세트가 끝나는 미디어의 패밀리 번호입니다. NULL일 수 있습니다. |
| last_media_number | smallint | 백업 세트가 끝나는 미디어의 미디어 번호입니다. NULL일 수 있습니다. |
| catalog_family_?number | tinyint | 백업 세트 디렉터리의 시작을 포함한 미디어의 패밀리 번호입니다. NULL일 수 있습니다. |
| catalog_media_number | smallint | 백업 세트 디렉터리의 시작을 포함한 미디어의 미디어 번호입니다. NULL일 수 있습니다. |
| position | int | 적절한 백업 세트 및 파일의 위치를 찾기 위해 복원 작업에 사용되는 백업 세트 위치입니다. NULL일 수 있습니다. 자세한 내용은 BACKUP(Transact-SQL)에서 FILE을 참조하십시오. |
| expiration_date | datetime | 백업 세트가 만료되는 날짜 및 시간입니다. NULL일 수 있습니다. |
| software_vendor_id | int | 백업 미디어 헤더를 기록하는 소프트웨어 공급업체의 ID입니다. NULL일 수 있습니다. |
| name | nvarchar(128) | 백업 세트의 이름입니다. NULL일 수 있습니다. |
| description | nvarchar(255) | 백업 세트에 관한 설명입니다. NULL일 수 있습니다. |
| user_name | nvarchar(128) | 백업 작업을 수행하는 사용자의 이름입니다. NULL일 수 있습니다. |
| software_major_version | tinyint | Microsoft SQL Server 주 버전 번호입니다. NULL일 수 있습니다. |
| software_minor_version | tinyint | SQL Server 부 버전 번호입니다. NULL일 수 있습니다. |
| software_build_version | smallint | SQL Server 빌드 번호입니다. NULL일 수 있습니다. |
| time_zone | smallint | 15분 간격으로 백업 작업이 수행되는 현지 시간과 UCT 간의 차이입니다. 값은 -48에서 +48까지 사용할 수 있으며 각 값을 포함합니다. 값 127은 알 수 없음을 의미합니다. 예를 들어 -20은 EST(동부 표준시) 또는 UTC 이후 5시간을 의미합니다. NULL일 수 있습니다. |
| mtf_minor_version | tinyint | Microsoft Tape Format의 부 버전 번호입니다. NULL일 수 있습니다. |
| first_lsn | numeric(25,0) | 백업 세트에서 첫 번째 또는 가장 오래된 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다. |
| last_lsn | numeric(25,0) | 백업 세트 다음에 오는 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다. |
| checkpoint_lsn | numeric(25,0) | 다시 실행이 시작되어야 하는 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다. |
| database_backup_lsn | numeric(25,0) | 가장 최근 전체 데이터베이스 백업의 로그 시퀀스 번호입니다. NULL일 수 있습니다. database_backup_lsn은 백업이 시작될 때 트리거되는 "검사점의 시작"입니다. 데이터베이스가 유휴 상태이고 복제가 구성되지 않은 경우 백업이 수행되면 이 LSN은 first_lsn과 일치하게 됩니다. |
| database_creation_date | datetime | 데이터베이스가 원래 생성된 날짜와 시간입니다. NULL일 수 있습니다. |
| backup_start_date | datetime | 백업 작업이 시작된 날짜와 시간입니다. NULL일 수 있습니다. |
| backup_finish_date | datetime | 백업 작업이 완료된 날짜와 시간입니다. NULL일 수 있습니다. |
| type | char(1) |
백업 유형입니다. 다음 값이 될 수 있습니다. D = 데이터베이스 I = 차등 데이터베이스 L = 로그 F = 파일 또는 파일 그룹 G =차등 파일 P = 부분 Q = 차등 부분 NULL일 수 있습니다. |
| sort_order | smallint | 백업 작업을 수행하는 서버의 정렬 순서입니다. NULL일 수 있습니다. 정렬 순서 및 데이터 정렬에 대한 자세한 내용은 데이터 정렬 작업을 참조하십시오. |
| code_page | smallint |
백업 작업을 수행하는 서버의 코드 페이지입니다.
NULL일 수 있습니다.
코드 페이지에 대한 자세한 내용은
|
| compatibility_level | tinyint |
데이터베이스에 대한 호환성 수준 설정입니다.
다음 값이 될 수 있습니다. 60 = SQL Server 6.0 65 = SQL Server 6.5 70 = SQL Server 7.0 80 = SQL Server 2000 90 = SQL Server 2005 NULL일 수 있습니다. 호환성 수준에 대한 자세한 내용은 sp_dbcmptlevel(Transact-SQL)을 참조하십시오. |
| database_version | int | 데이터베이스 버전 번호입니다. NULL일 수 있습니다. |
| backup_size | numeric(20,0) | 백업 세트의 크기(바이트)입니다. NULL일 수 있습니다. |
| database_name | nvarchar(128) | 백업 작업과 연관된 데이터베이스의 이름입니다. NULL일 수 있습니다. |
| server_name | nvarchar(128) | SQL Server 백업 작업을 실행하고 있는 서버의 이름입니다. NULL일 수 있습니다. |
| machine_name | nvarchar(128) | SQL Server를 실행 중인 컴퓨터의 이름입니다. NULL일 수 있습니다. |
| flags | int |
Microsoft SQL Server 2005에서는 flags 열이 사용되지 않고
대신 다음과 같은 bit 열이 사용됩니다.
|
| unicode_locale | int | 유니코드 로캘입니다. NULL일 수 있습니다. |
| unicode_compare_style | int | 유니코드 비교 스타일입니다. NULL일 수 있습니다. |
| collation_name | nvarchar(128) | 데이터 정렬 이름입니다. NULL일 수 있습니다. |
| Is_password_protected | bit |
백업 세트입니다.
다음과 같이 암호로 보호됩니다. 0 = 보호되지 않음 1 = 보호됨 |
| recovery_model | nvarchar(60) | 데이터베이스의 복구 모델입니다. FULL BULK-LOGGED SIMPLE |
| has_bulk_logged_data | bit | 1 = 백업이 대량 로그 데이터를 포함합니다. |
| is_snapshot | bit | 1 = SNAPSHOT 옵션을 사용하여 백업이 수행되었습니다. |
| is_readonly | bit | 1 = 백업 시 데이터베이스가 읽기 전용이었습니다. |
| is_single_user | bit | 1 = 백업 시 데이터베이스가 단일 사용자 모드였습니다. |
| has_backup_checksums | bit | 1 = 백업이 백업 체크섬을 포함합니다. |
| is_damaged | bit | 1 = 이 백업이 생성될 때 데이터베이스 손상이 감지되었습니다. 오류와 관계없이 백업 작업을 계속하도록 요청했습니다. |
| begins_log_chain | bit | 1 = 연속되는 로그 백업 체인에서 첫 번째입니다. 로그 체인은 데이터베이스가 생성된 후 또는 단순 복구 모델에서 전체 또는 대량 로그 복구 모델로 전환될 때 수행된 첫 번째 로그 백업에서 시작됩니다. |
| has_incomplete_metadata | bit |
1 = 메타데이터가 완전하지 않은 비상 로그 백업입니다.
자세한 내용은 |
| is_force_offline | bit | 1 = 백업이 수행될 때 NORECOVERY 옵션을 사용하여 데이터베이스가 오프라인 상태가 되었습니다. |
| is_copy_only | bit |
1 = 복사 전용 백업입니다. 자세한 내용은 |
| first_recovery_fork_guid | uniqueidentifier | 복구 분기 시작 지점의 ID입니다. RESTORE HEADERONLY의 FirstRecoveryForkID에 해당됩니다. 데이터 백업의 경우 first_recovery_fork_guid는 last_recovery_fork_guid와 같습니다. |
| last_recovery_fork_guid | uniqueidentifier | 복구 분기 끝 지점의 ID입니다. RESTORE HEADERONLY의 RecoveryForkID에 해당됩니다. 데이터 백업의 경우 first_recovery_fork_guid는 last_recovery_fork_guid와 같습니다. |
| fork_point_lsn | numeric(25,0) | first_recovery_fork_guid가 last_recovery_fork_guid와 같지 않으면 분기 지점의 로그 시퀀스 번호입니다. 그렇지 않으면 값은 NULL입니다. |
| database_guid | uniqueidentifier | 데이터베이스에 대한 고유 ID입니다. RESTORE HEADERONLY의 BindingID에 해당됩니다. 데이터베이스를 복원하면 새 값이 할당됩니다. |
| family_guid | uniqueidentifier | 생성 시 원래 데이터베이스의 고유 ID입니다. 이 값은 데이터베이스가 다른 이름으로 복원되는 경우에도 동일하게 유지됩니다. |
| differential_base_lsn | numeric(25,0) | 차등 백업에 대한 기본 LSN입니다. 단일 백업을 기반으로 하는 차등 백업의 경우 differential_base_lsn보다 크거나 같도록 LSN을 변경하면 차등 백업에 포함됩니다. 여러 백업을 기반으로 하는 차등 백업의 경우 값은 NULL이며 기본 LSN은 파일 수준에서 결정해야 합니다. backupfile(Transact-SQL)을 참조하십시오. 비차등 백업 유형의 경우 값은 항상 NULL입니다. |
| differential_base_guid | uniqueidentifier |
단일 백업을 기준으로 하는 차등 백업의 경우
값은 차등 기반의 고유 식별자입니다.
여러 백업을 기반으로 하는 차등 백업의 경우 값은 NULL이며
기본 차등 백업은 파일 수준에서 결정해야 합니다.
비차등 백업 유형의 경우 값은 NULL입니다. |
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/137
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/77
Top SQL Server 2005 Performance Issues for OLTP Applications
원문 : http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/oltp-performance-issues.mspx
OLTP work loads are characterized by high volumes of similar small
transactions.
It is important to keep these characteristics in mind as we examine the significance of database design, resource utilization and system performance. The top performance bottlenecks or gotchas for OLTP applications are outlined below.
Database Design issue if….
| • |
Too many table joins for frequent queries. Overuse of joins in an OLTP application results in longer running queries & wasted system resources. Generally, frequent operations requiring 5 or more table joins should be avoided by redesigning the database. |
| • |
Too many indexes on frequently updated (inclusive of inserts, updates and deletes) tables incur extra index maintenance overhead. Generally, OLTP database designs should keep the number of indexes to a functional minimum, again due to the high volumes of similar transactions combined with the cost of index maintenance. |
| • |
Big IOs such as table and range scans due to missing indexes. By definition, OLTP transactions should not require big IOs and should be examined. |
| • |
Unused indexes incur the cost of index maintenance for inserts, updates, and deletes without benefiting any users. Unused indexes should be eliminated. Any index that has been used (by select, update or delete operations) will appear in sys.dm_db_index_usage_stats. Thus, any defined index not included in this DMV has not been used since the last re-start of SQL Server. |
CPU bottleneck if…
| • |
Signal waits > 25% of total waits. See sys.dm_os_wait_stats for Signal waits and Total waits. Signal waits measure the time spent in the runnable queue waiting for CPU. High signal waits indicate a CPU bottleneck. |
| • |
Plan re-use < 90% . A query plan is used to execute a query. Plan re-use is desirable for OLTP workloads because re-creating the same plan (for similar or identical transactions) is a waste of CPU resources. Compare SQL Server SQL Statistics: batch requests/sec to SQL compilations/sec. Compute plan re-use as follows: Plan re-use = (Batch requests - SQL compilations) / Batch requests. Special exception to the plan re-use rule: Zero cost plans will not be cached (not re-used) in SQL 2005 SP2. Applications that use zero cost plans will have a lower plan re-use but this is not a performance issue. |
| • |
Parallel wait type cxpacket > 10% of total waits. Parallelism sacrifices CPU resources for speed of execution. Given the high volumes of OLTP, parallel queries usually reduce OLTP throughput and should be avoided. See sys.dm_os_wait_stats for wait statistics. |
Memory bottleneck if…
| • |
Consistently low average page life expectancy. See Average Page Life Expectancy Counter which is in the Perfmon object SQL Server Buffer Manager (this represents is the average number of seconds a page stays in cache). For OLTP, an average page life expectancy of 300 is 5 minutes. Anything less could indicate memory pressure, missing indexes, or a cache flush. |
| • |
Sudden big drop in page life expectancy. OLTP applications (e.g. small transactions) should have a steady (or slowly increasing) page life expectancy. See Perfmon object SQL Server Buffer Manager. |
| • |
Pending memory grants. See counter Memory Grants Pending, in the Perfmon object SQL Server Memory Manager. Small OLTP transactions should not require a large memory grant. |
| • |
Sudden drops or consistenty low SQL Cache hit ratio. OLTP applications (e.g. small transactions) should have a high cache hit ratio. Since OLTP transactions are small, there should not be (1) big drops in SQL Cache hit rates or (2) consistently low cache hit rates < 90%. Drops or low cache hit may indicate memory pressure or missing indexes. |
IO bottleneck if…
| • |
High average disk seconds per read. When the IO subsystem is queued, disk seconds per read increases. See Perfmon Logical or Physical disk (disk seconds/read counter). Normally it takes 4-8ms to complete a read when there is no IO pressure. When the IO subsystem is under pressure due to high IO requests, the average time to complete a read increases, showing the effect of disk queues. Periodic higher values for disk seconds/read may be acceptable for many applications. For high performance OLTP applications, sophisticated SAN subsystems provide greater IO scalability and resiliency in handling spikes of IO activity. Sustained high values for disk seconds/read (>15ms) does indicate a disk bottleneck. |
| • |
High average disk seconds per write. See Perfmon Logical or Physical disk. The throughput for high volume OLTP applications is dependent on fast sequential transaction log writes. A transaction log write can be as fast as 1ms (or less) for high performance SAN environments. For many applications, a periodic spike in average disk seconds per write is acceptable considering the high cost of sophisticated SAN subsystems. However, sustained high values for average disk seconds/write is a reliable indicator of a disk bottleneck. |
| • |
Big IOs such as table and range scans due to missing indexes. |
| • |
Top wait statistics in sys.dm_os_wait_stats are related to IO such as ASYNCH_IO_COMPLETION, IO_COMPLETION, LOGMGR, WRITELOG, or PAGEIOLATCH_x. |
Blocking bottleneck if…
| • |
Index contention. Look for lock and latch waits in sys.dm_db_index_operational_stats. Compare with lock and latch requests. |
| • |
High average row lock or latch waits. The average row lock or latch waits are computed by dividing lock and latch wait milliseconds (ms) by lock and latch waits. The average lock wait ms computed from sys.dm_db_index_operational_stats represents the average time for each block. |
| • |
Block process report shows long blocks. See sp_configure “blocked process threshold” and Profiler “Blocked process Report” under the Errors and Warnings event. |
| • |
Top wait statistics are LCK_x. See sys.dm_os_wait_stats. |
| • |
High number of deadlocks. See Profiler “Graphical Deadlock” under Locks event to identify the statements involved in the deadlock. |
Network bottleneck if…
| • |
High network latency coupled with an application that incurs many round trips to the database. |
| • |
Network bandwidth is used up. See counters packets/sec and current bandwidth counters in the network interface object of Performance Monitor. For TCP/IP frames actual bandwidth is computed as packets/sec * 1500 * 8 /1000000 Mbps. |
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/57
Storage Top 10 Best Practices
원문 : http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/storage-top-10.mspx
Proper configuration of IO subsystems is critical to the optimal performance and operation of SQL Server systems. Below are some of the most common best practices that the SQL Server team recommends with respect to storage configuration for SQL Server.
Understand the IO characteristics of SQL Server and the specific IO requirements / characteristics of your application.
In order to be successful in designing and deploying storage for your SQL Server application, you need to have an understanding of your application’s IO characteristics and a basic understanding of SQL Server IO patterns. Performance monitor is the best place to capture this information for an existing application. Some of the questions you should ask yourself here are:
| • |
What is the read vs. write ratio of the application? | ||||||||||
| • |
What are the typical IO rates (IO per second, MB/s & size of the IOs)? Monitor the perfmon counters:
| ||||||||||
| • |
How much IO is sequential in nature, and how much IO is random in nature? Is this primarily an OLTP application or a Relational Data Warehouse application? |
To understand the core characteristics of SQL Server IO, refer to SQL Server 2000 I/O Basics.
More / faster spindles are better for performance
| • |
Ensure that you have an adequate number of spindles to support your IO requirements with an acceptable latency. |
| • |
Use filegroups for administration requirements such as backup / restore, partial database availability, etc. |
| • |
Use data files to “stripe” the database across your specific IO configuration (physical disks, LUNs, etc.). |
Try not to “over” optimize the design of the storage; simpler designs generally offer good performance and more flexibility.
| • |
Unless you understand the application very well avoid trying to over optimize the IO by selectively placing objects on separate spindles. |
| • |
Make sure to give thought to the growth strategy up front. As your data size grows, how will you manage growth of data files / LUNs / RAID groups? It is much better to design for this up front than to rebalance data files or LUN(s) later in a production deployment. |
Validate configurations prior to deployment
| • |
Do basic throughput testing of the IO subsystem prior to deploying SQL Server. Make sure these tests are able to achieve your IO requirements with an acceptable latency. SQLIO is one such tool which can be used for this. A document is included with the tool with basics of testing an IO subsystem. Download the SQLIO Disk Subsystem Benchmark Tool. |
| • |
Understand that the of purpose running the SQLIO tests is not to simulate SQL Server’s exact IO characteristics but rather to test maximum throughput achievable by the IO subsystem for common SQL Server IO types. |
| • |
IOMETER can be used as an alternative to SQLIO. |
Always place log files on RAID 1+0 (or RAID 1) disks. This provides:
| • |
better protection from hardware failure, and |
| • |
better write performance. |
Isolate log from data at the physical disk level
| • |
When this is not possible (e.g., consolidated SQL environments) consider I/O characteristics and group similar I/O characteristics (i.e. all logs) on common spindles. |
| • |
Combining heterogeneous workloads (workloads with very different IO and latency characteristics) can have negative effects on overall performance (e.g., placing Exchange and SQL data on the same physical spindles). |
Consider configuration of TEMPDB database
| • |
Make sure to move TEMPDB to adequate storage and pre-size after installing SQL Server. |
| • |
Performance may benefit if TEMPDB is placed on RAID 1+0 (dependent on TEMPDB usage). |
| • |
For the TEMPDB database, create 1 data file per CPU, as described in #8 below. |
Lining up the number of data files with CPU’s has scalability advantages for allocation intensive workloads.
| • |
It is recommended to have .25 to 1 data files (per filegroup) for each CPU on the host server. |
| • |
This is especially true for TEMPDB where the recommendation is 1 data file per CPU. |
| • |
Dual core counts as 2 CPUs; logical procs (hyperthreading) do not. |
Don’t overlook some of SQL Server basics
| • |
Data files should be of equal size – SQL Server uses a proportional fill algorithm that favors allocations in files with more free space. |
| • |
Pre-size data and log files. |
| • |
Do not rely on AUTOGROW, instead manage the growth of these files manually. You may leave AUTOGROW ON for safety reasons, but you should proactively manage the growth of the data files. |
Don’t overlook storage configuration bases
| • |
Use up-to-date HBA drivers recommended by the storage vendor |
| • |
Utilize storage vendor specific drivers from the HBA manufactures website |
| • |
Tune HBA driver settings as needed for your IO volumes. In general driver specific settings should come from the storage vendor. However we have found that Queue Depth defaults are usually not deep enough to support SQL Server IO volumes. |
| • |
Ensure that the storage array firmware is up to the latest recommended level. |
| • |
Use multipath software to achieve balancing across HBA’s and LUN’s and ensure this is functioning properly |
| • |
Simplifies configuration & offers advantages for availability |
| • |
Microsoft Multipath I/O (MPIO): Vendors build Device Specific Modules (DSM) on top of Driver Development Kit provided by Microsoft. |
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/56
원문 : http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/dw_perf_top10.mspx
Relational Data Warehouse or Reporting work loads are characterized by low volumes of very large transactions. These applications are often identified as having predominately read workloads (e.g. Decision Support, Analysis, and Reporting) with periodic feeds or batch loads. It is important to keep these characteristics in mind as we examine the significance of database design, resource utilization and system performance. The top performance bottlenecks or gotchas to avoid for Data Warehouse or Reporting applications are outlined below.
Database Design issue if….
| • |
Excessive sorting operations are performed. If you continually perform the same sorting operations over and over, you can avoid these with appropriate indexing. |
| • |
Excessive RID lookups are performed on heap tables. RID lookups mean extra IOs are required to retrieve columns that are not in the index used. This can be avoided with covered nonclustered indexes. |
| • |
Key lookups against the clustering keys look like joins however they are marked as “lookups” only in the XML showplan. These can be avoided with covered nonclustered indexes. |
| • |
A potentially beneficial index is missing on join columns resulting in HASH joins. Indexes on join columns may avoid the hash. |
CPU gotchas….
| • |
If signal waits > 25% of total waits, there is a CPU bottleneck. See sys.dm_os_wait_stats for Signal waits and Total waits. Signal waits measure the time spent in the runnable queue waiting for CPU. High signal waits indicate a CPU bottleneck. |
| • |
Avoid inappropriate plan re-use. If the query is identical, then plan re-use is a good thing. However, query parameterization that allows plan re-use is only appropriate when the result set (and intermediate work tables) are of similar size to the original plan. If result set sizes vary significantly due to differing parameter values which are common in data warehouse scenarios, plan re-use can be detrimental. Bad plans can also lead to longer running queries and IO or memory pressure. Therefore, the cost of plan generation in such cases is preferable to plan re-use. Unlike OLTP, data warehouse queries are not always identical in terms of result sets or optimal query plans. |
Memory bottleneck if….
| • |
Sudden big drop in page life expectancy. DW applications (e.g. big transactions) could experience big drops in page life expectancy. This is due to a cache flush from a big read. See Perfmon object SQL Server Buffer Manager. |
| • |
Pending memory grants. See counter Memory Grants Pending, in the Perfmon object SQL Server Memory Manager. Large memory grants can be common in Data Warehouse applications. More memory may help, otherwise the user cannot execute until memory grant occurs. |
| • |
Sudden drops or consistently low SQL Cache hit ratio. Drops or low cache hit may indicate memory pressure or missing indexes. |
IO bottleneck if…
| • |
The best metric for write performance is disk seconds per read and disk seconds per write. When the IO system is NOT under significant load, there will be no disk queuing and thus disk seconds per read or write should be as good as it gets Normally it takes 4-8 milliseconds to complete a read when there is no IO pressure. Factors for IO throughput are the number of spindles, and drive throughput such as sequential and random IOs per second (according to the vendor). As the IO requests increase, you may notice disk queuing. The effects of queuing are reflected in high disk seconds per read or write. Periodic higher values for disk seconds/read may be acceptable for many applications. For high performance OLTP applications, sophisticated SAN subsystems provide greater IO scalability and resiliency in handling spikes of IO activity. Sustained high values for disk seconds/read (>15ms) does indicate a disk bottleneck. |
| • |
High average disk seconds per write. See Perfmon Logical or Physical disk. Data Warehouse loads can be either logged with inserts, updates or deletes, or non-logged using bulk copy. Logged operations require transaction log writes. A transaction log write can be as fast as 1ms (or less) for high performance SAN environments. For many applications, a periodic spike in average disk seconds per write is acceptable considering the high cost of sophisticated SAN subsystems. However, sustained high values for average disk seconds/write is a reliable indicator of a disk bottleneck. |
| • |
Big IOs such as table and range scans may be due to missing indexes. |
Blocking bottleneck if….
| • |
Index contention. Look for high lock and latch waits in sys.dm_db_index_operational_stats. Compare with lock and latch requests. |
| • |
High average row lock or latch waits. The average row lock or latch waits are computed by dividing lock and latch wait milliseconds (ms) by lock and latch waits. The average lock wait ms computed from sys.dm_db_index_operational_stats represents the average time for each block. |
| • |
Block process report shows long blocks. See sp_configure “blocked process threshold” and Profiler “Blocked process Report” under the Errors and Warnings event. |
| • |
High number of deadlocks. See Profiler “Graphical Deadlock” under Locks event to identify the statements involved in the deadlock. |
Network bottleneck if….
| • |
High network latency coupled with an application that incurs many round trips to the database. |
| • |
Network bandwidth is used up. See counters packets/sec and current bandwidth counters in the network interface object of Performance Monitor. For TCP/IP frames actual bandwidth is computed as packets/sec * 1500 * 8 /1000000 Mbps. |
Wait statistics gotchas...
| • |
Since DataWarehouse and Reporting workloads are largely reads which are compatible with other reads, incompatible exclusive lock waits would ordinarily only come into play during batch loads or periodic feeds. If the top wait statistics are LCK_x. or PAGELATCH_EX, see “SQL Server 2005 Performance Tuning using Waits & Queues” for an explanation of sys.dm_os_wait_stats. |
| • |
There is an IO bottleneck if top wait statistics in sys.dm_os_wait_stats are related to IO such as ASYNCH_IO_COMPLETION, IO_COMPLETION, LOGMGR, WRITELOG, or PAGEIOLATCH_x. |
Indexing gotchas.
| • |
Large data warehouse can benefit from more indexes. Indexes can be used to cover queries and avoid sorting. For a data warehouse application, the cost of index overhead is only paid when data is loaded. |
| • |
Check for missing indexes in sys.dm_db_missing_index_group_stats, sys.dm_db_missing_index_groups and sys.dm_db_missing_index_details |
Watch out for fragmentation.
| • |
Excessive fragmentation is problematic for big IO operations. The Dynamic Management table valued function sys.dm_db_index_physical_stats returns the fragmentation percentage in the column avg_fragmentation_in_percent. Fragmentation should not exceed 25%. Reducing index fragmentation can benefit big range scans, common in data warehouse and Reporting scenarios |
Consider Table Partitioning for fast loads
| • |
For the large tables common in Data Warehouses, table partitioning offers important performance and manageability advantages. For example, the fastest type of load is a non-logged bulk copy. The requirements for non-logged bulk copies are that indexes must be dropped. This is not feasible on a huge billion row table UNLESS you use table partitioning. This allows one to create a staging table identical to the large table (minus indexes). A fast non-logged bulk copy is used to load data. Thereafter, indexes are added to the staging table followed by constraints. Then, a meta-data only SWITCH IN operation switches pointer locations for the populated staging table and the empty target partition of the partitioned table resulting in an fully populated partition and empty staging table. Besides a fast bulk copy, the staging table allows us to eliminate blocking in the large partitioned table during the load. For more information refer to “Loading Bulk Data into Partitioned Tables”. In addition to fast loads, partitioned tables allow fast deletes (or archiving purposes or sliding window deletes) where large logged deletes are replaced with meta-data only partition SWITCH OUT operations that switches pointer locations for the full partition (to be ‘deleted’) and an empty monolithic table. The SWITCH OUT results in an empty partition and a fully populated monolithic staging table. Thereafter the monolithic table can either be dropped or added to a partitioned archive table using SWITCH IN. Partitions also provide manageability improvements when combined with specific filegroup placement, allowing for customized backup and restore strategies. |
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/54
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/55
| KB article | Title |
|---|---|
| 956911 | FIX: A time-out setting is not available for the Web Service task in a Microsoft SQL Server 2005 Integration Services (SSIS) package |
| 958547 | FIX: The values of the datetime column are not same for the rows that are copied when you copy data to a table by using the GETDATE() function in Microsoft SQL Server 2005 |
| 959000 | FIX: When you validate a publication in a transactional replication, articles that you added after you added a vertical filter to an article are not validated in SQL Server 2005 |
| 959001 | FIX: The Log Reader Agent skips some transactions when the Log Reader Agent runs to replicate transactions for a transactional replication in SQL Server 2005 |
| 959003 | FIX: Only the first command in a transaction is replicated to the subscriber when you set the MaxCmdsInTran parameter of Log Reader Agent to 1 in SQL Server 2005 |
| 959004 | FIX: When a process that is running on an instance of SQL Server 2005 consumes a large amount of memory, dump files are generated in the folder that contains the SQL Server error log |
| 959006 | FIX: Database mirroring sessions may stop intermittently in SQL Server 2005 |
| 959007 | FIX: Error message when you use SQL Server Service Broker in SQL Server 2005: "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE 589824" |
| 959008 | FIX: Error message when you start database mirroring in SQL Server 2005 on a database that is restored or upgraded from SQL Server 2000: "The Service Broker ID for the remote copy of database "<DatabaseName>" does not match the ID on the principal server" |
| 959009 | FIX: Target endpoints in Service Broker of SQL Server 2005 leak in the valid message exchange pattern where the target sends only the end conversation message |
| 959010 | FIX: Error message when an application that uses Service Broker sends messages in SQL Server 2005: "The conversation endpoint is not in a valid state for SEND" |
| 959012 | FIX: When you shrink a database that has the SNAPSHOT transaction isolation level enabled in SQL Server 2005, the shrink operation is not completed successfully |
| 959013 | FIX: The synchronization process is slow, and the CPU usage is high on the computer that is configured as the Distributor in SQL Server 2005 |
| 959015 | FIX: A conflict with the foreign key constraint occurs when you update the case of the column values in the primary key table or you pad column values in the primary key table in SQL Server 2005 |
| 959016 | FIX: Rows that include a NULL column may not be deleted when you delete rows from a table by using "<ImageColumnName> is NULL" as the condition in the WHERE clause in SQL Server 2005 |
| 959017 | FIX: You receive an incorrect result when you query a column of the varchar(max) data type that contains only one character from a table in SQL Server 2005 |
| 959018 | FIX: You cannot find the SQL Server 2005 performance counters for the instance of Windows Internal Database |
| 959019 | FIX: You receive an incorrect result when you run a query that uses the LIKE operator in SQL Server 2005 |
| 959020 | FIX: When you use a CASE function that returns constants of the binary data type, some constants are trimmed incorrectly even after you run the SET ANSI_PADDING ON statement in SQL Server 2005 |
| 959023 | FIX: A blocking issue occurs when you run the Merge Agent in SQL Server 2005 |
| 959024 | FIX: When the Merge Agent synchronizes multiple batches of changes, the synchronization may take a long time to finish or the synchronization may expire unexpectedly in SQL Server 2005 |
| 959025 | FIX: Error message when you call a stored procedure that returns a rowset which have the DBPROP_MAXROWS rowset property or the SSPROP_MAXBLOBLENGTH rowset property specified: "The incoming tabular data stream (TDS) protocol stream is incorrect" |
| 959026 | FIX: Error message when you run a DB2 query that uses the WITH UR query hint in SQL Server 2005 Analysis Services: "OLE DB error: OLE DB or ODBC error: An unexpected token "WITH" was found following "<Query>"" |
| 959031 | FIX: Error message when you try to expand the Catalogs node for a linked server that links to a Teradata Database in SQL Server 2005: "Cannot obtain the schema rowset DBSCHEMA_CATALOGS for OLE DB provider SQL Server for linked server (null)" |
| 959376 | FIX: Error message when you run the DBCC SHRINKFILE command or the DBCC SHRINKDATABASE command on a server that contains a SQL Server 2008 database: "5205 : DBCC SHRINKFILE: Moving Page <FileId>:<PageId> failed" |
| FIX: A new trace event is logged by any command that aborts a transaction in SQL Server 2005 Analysis Services |
| FIX: An unexpected error is returned when an aggregation is referenced that has an attribute in a many-to-many dimension in SQL Server 2005 Analysis Services: "file ‘pffilestore.cpp’, line 3311, function ‘PFFileStore::HandleDataPageFault’" |
| FIX: Redundant indexes are created on datacache objects when the cost estimate indicates that indexes are not required in SQL Server 2005 |
| FIX: The PeriodstoDate() function generates an unhandled exception at Time.All coordinates in SQL Server 2005 |
| FIX: If you install SQL Server 2005 SP1 or SQL Server 2005 SP2 after you add a network card to the same computer, the installation adds a duplicate IP address in the SQL Server network configuration |
| FIX: In SQL Server 2005, the DTS designer application cannot be started on a Windows Vista-based computer or on a Windows Server 2008-based computer |
| FIX: You cannot set the breakpoint to the script of an SSIS script task when the current script is shorter than a script in another script task in the same package |
| FIX: A Transfer Objects task does not transfer assemblies to the destination database in SQL Server 2005 |
| The design time experience of the TransferSQLServerObjects task is improved |
| FIX: The TransferSQLServerObjects task drops database users during the CopyAllOjbect operation in SQL Server 2005 |
| FIX: The property setting of a TransferSqlServerObjects task cannot be correctly saved in SQL Server 2005 |
| The connection handling with SAP Business Intelligence (BI) designer is improved to avoid "connection timed out" error messages |
| FIX: Error message when you use the new Essbase provider name: "OLAP error (1260046): Unknown Member PARENT_UNIQUE_NAME used in query" |
| FIX: Rendering a report is much longer in the SharePoint integrated mode than in the Native mode, especially when you put more than one report viewer Web part on a SharePoint Web page |
| FIX: A query that contains the "current of" statement receives incorrect results from a heap table because of an incorrect query plan in SQL Server 2005 |
| FIX: When a single partition is rebuilt in SQL Server 2005, statistics are dropped together with the old version of the index |
| FIX: When a CHECKPOINT thread is blocked by another SPID, SQL Server 2005 does not update the sys.dm_exec_requests dynamic management view with the blocking information, and the blocking_session_id column remains NULL |
| FIX: You receive an incorrect value in the @@ROWCOUNT function if the query is recompiled |
| FIX: If the Parameterization Forced option is enabled on a database in SQL Server 2005, the unicode characters inside literal constants in some queries may be interpreted as non-unicode characters |
| The sp_altermessage stored procedure can now be used to enable or disable system messages to the Windows event log in SQL Server 2005 |
| FIX: When a "non-yielding schedule condition" error (error 17883) occurs, the SQL Server service generates a dump file on the first occurrence |
| FIX: When multiple instances of the print control are started at the same time from the same Internet Explorer process, Internet Explorer may crash |
| KB article | Title |
|---|---|
| 931279 | SQL Server timing values may be incorrect when you use utilities or technologies that change CPU frequencies |
| 958999 | Best practices for changing the service account for the report server in SQL Server 2005 Reporting Services |
| 960320 | Error message when you install SQL Server 2005 Service Pack 3 on Windows Vista: "Visual Studio 2005 has a know compatibility issue with this version of Windows" |
| 959823 | How to customize the quota for the TokenAndPermUserStore cache store in SQL Server 2005 Service Pack 3 |
Posted by 좐군
Trackback URL : http://John.tobe30.com/tc/trackback/50
- 좐군
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |