Tuesday, March 20, 2012
Create (U)SP in database on linked server
I'm using a couple of linked servers.
I want to create a stored procedure on all of the linked servers in a database with a name which exists on all of the linked servers.
For executing SQL on all of the linked servers I'm using:
declare @.x int
declare @.dbname varchar(500)
declare @.SQL nvarchar(600)
set @.x = 1
create table #databases (ID int IDENTITY,name varchar(500))
insert #databases select instancelongname from instances
while @.x <= (select max(id) from #databases)
begin
select @.dbname = name from #databases where id = @.x
select @.SQL='blabla bla bla create PROCEDURE [dbo].[usp_xxxx]'
execute @.SQL
set @.x = @.x + 1
end
drop table #databases
Is it possible to use a create procedure in this construction?
Can anybody give me some help how to create a proper syntax for it?
Any help is kindly appreciated!Your code assumes that the database IDs are sequential and continuous, which they are probably not, so you are going to generate a lot of errors with this. But as far as creating the sprocs, your dynamic SQL will need to start with a USE statement to set the scope to your target database.
Friday, February 24, 2012
Couple questions about partitioning and performance gain
Hello,
I try to maximize cube performance with partitioning. As a test, I have created a very thight partition for one customer only and compare the cube performance between this customer and other customers in larger partitions.
I am a little confused because I do not see a difference.
I also note that when I include calculated measures in the result set, it really knock-down the performance. example, this calculated measure:
iif([Margin Type].CurrentMember.name = "Historical",
iif(isempty([Measures].[AMT]) or [Measures].[AMT] =0, null,
([Measures].[AMT] - [Measures].[Margin1 Cost])/[Measures].[AMT])
, iif(isempty([Measures].[AMT]) or [Measures].[AMT] =0, null,
([Measures].[AMT] - [Measures].[Margin1 Cost Inception])/[Measures].[AMT]))
Really slow-down the cube even for the customer that has a dedicated partition.
The expected result is a matrix of 10,000 rows for 4-5 attributes and 4 columns of measures plus 4 calcuted measures times 8 quarters. unfortunately, I need that much data.
I tried to set the non-empty behavior of this calculated measure to be both types of cost and removed the isempty or 0 test but did not see any change.
I also did both a 30% aggregation plus the user queries optimization.
The fact table is 6M rows, 2 of the dim tables are 300K rows. I run SQL2005 enterprise RTM (no sp1 yet, I did not test it). I use Excel 2003 pivot as front-end.
So is there any benefit in creating lot of small partitions to boost most likely users queries?
I am learning, reading and trying but I lack the practical experience.
Any insights?
Thanks
Philippe
Does this perform any faster?
Create Member Measures.yourcalcmeasure = 1 - [Measures].[Margin1 Cost Inception] / [Measures].[AMT];
(Measures.yourcalcmeasure, [Margin Type].Historical) = 1 - [Measures].[Margin1 Cost]/[Measures].[AMT];
(and try to deal with "divide by zero" errors in the client application)
Thank you
Couple of SQL Agent questions
I've got a customer that is creating a LOCAL PACKAGE/SQL AGENT Job to run a
TextImport.exe program on the server, which loads a table and creates a log
file.
They want to be able to print the log file - to a network printer, as the
final step. I do not see PRINT type tasks in the design window. Any
suggestions?
Also, what they have so far runs when they EXECUTE the package from LOCAL
PACKAGES. But when they try to START JOB from SQL AGENT it fails and they
get a message for step 1 saying:
"The step is improperly defined (it needs a valid owner and/or command) and
so could not be run. The step failed."
Thanks.Here is a suggestion.
Use the command task executing print.exe /d:lpt1 c:\filename.log
Most of the time when executing packages through Agent this is a security
issue.
Tushar
"Steve Z" <szlamany@.antarescomputing_no_spam.com> wrote in message
news:eNuHobsLEHA.2440@.TK2MSFTNGP10.phx.gbl...
> Hi all,
> I've got a customer that is creating a LOCAL PACKAGE/SQL AGENT Job to run
> a
> TextImport.exe program on the server, which loads a table and creates a
> log
> file.
> They want to be able to print the log file - to a network printer, as the
> final step. I do not see PRINT type tasks in the design window. Any
> suggestions?
> Also, what they have so far runs when they EXECUTE the package from LOCAL
> PACKAGES. But when they try to START JOB from SQL AGENT it fails and they
> get a message for step 1 saying:
> "The step is improperly defined (it needs a valid owner and/or command)
> and
> so could not be run. The step failed."
> Thanks.
>
Couple of SQL Agent questions
I've got a customer that is creating a LOCAL PACKAGE/SQL AGENT Job to run a
TextImport.exe program on the server, which loads a table and creates a log
file.
They want to be able to print the log file - to a network printer, as the
final step. I do not see PRINT type tasks in the design window. Any
suggestions?
Also, what they have so far runs when they EXECUTE the package from LOCAL
PACKAGES. But when they try to START JOB from SQL AGENT it fails and they
get a message for step 1 saying:
"The step is improperly defined (it needs a valid owner and/or command) and
so could not be run. The step failed."
Thanks.Here is a suggestion.
Use the command task executing print.exe /d:lpt1 c:\filename.log
Most of the time when executing packages through Agent this is a security
issue.
Tushar
"Steve Z" <szlamany@.antarescomputing_no_spam.com> wrote in message
news:eNuHobsLEHA.2440@.TK2MSFTNGP10.phx.gbl...
> Hi all,
> I've got a customer that is creating a LOCAL PACKAGE/SQL AGENT Job to run
> a
> TextImport.exe program on the server, which loads a table and creates a
> log
> file.
> They want to be able to print the log file - to a network printer, as the
> final step. I do not see PRINT type tasks in the design window. Any
> suggestions?
> Also, what they have so far runs when they EXECUTE the package from LOCAL
> PACKAGES. But when they try to START JOB from SQL AGENT it fails and they
> get a message for step 1 saying:
> "The step is improperly defined (it needs a valid owner and/or command)
> and
> so could not be run. The step failed."
> Thanks.
>
Couple of SQL Agent questions
I've got a customer that is creating a LOCAL PACKAGE/SQL AGENT Job to run a
TextImport.exe program on the server, which loads a table and creates a log
file.
They want to be able to print the log file - to a network printer, as the
final step. I do not see PRINT type tasks in the design window. Any
suggestions?
Also, what they have so far runs when they EXECUTE the package from LOCAL
PACKAGES. But when they try to START JOB from SQL AGENT it fails and they
get a message for step 1 saying:
"The step is improperly defined (it needs a valid owner and/or command) and
so could not be run. The step failed."
Thanks.
Here is a suggestion.
Use the command task executing print.exe /d:lpt1 c:\filename.log
Most of the time when executing packages through Agent this is a security
issue.
Tushar
"Steve Z" <szlamany@.antarescomputing_no_spam.com> wrote in message
news:eNuHobsLEHA.2440@.TK2MSFTNGP10.phx.gbl...
> Hi all,
> I've got a customer that is creating a LOCAL PACKAGE/SQL AGENT Job to run
> a
> TextImport.exe program on the server, which loads a table and creates a
> log
> file.
> They want to be able to print the log file - to a network printer, as the
> final step. I do not see PRINT type tasks in the design window. Any
> suggestions?
> Also, what they have so far runs when they EXECUTE the package from LOCAL
> PACKAGES. But when they try to START JOB from SQL AGENT it fails and they
> get a message for step 1 saying:
> "The step is improperly defined (it needs a valid owner and/or command)
> and
> so could not be run. The step failed."
> Thanks.
>
Couple of Simple questions
procedure but what does that do for the stored proc? I cannot seem to find a
solid answer on this except its good practice.
thanks in advance
rob
Rob,
Read this:
http://www.sql-server-performance.co...procedures.asp
HTH
Jerry
"Rob" <temp@.dstek.com> wrote in message
news:ukfTz%23FyFHA.720@.TK2MSFTNGP15.phx.gbl...
>I know that it is good practice to use NO COUNT and RETURN in a stored
> procedure but what does that do for the stored proc? I cannot seem to find
> a
> solid answer on this except its good practice.
>
> thanks in advance
> rob
>
Couple of Simple questions
procedure but what does that do for the stored proc? I cannot seem to find a
solid answer on this except its good practice.
thanks in advance
robRob,
Read this:
http://www.sql-server-performance.c..._procedures.asp
HTH
Jerry
"Rob" <temp@.dstek.com> wrote in message
news:ukfTz%23FyFHA.720@.TK2MSFTNGP15.phx.gbl...
>I know that it is good practice to use NO COUNT and RETURN in a stored
> procedure but what does that do for the stored proc? I cannot seem to find
> a
> solid answer on this except its good practice.
>
> thanks in advance
> rob
>
Couple of Simple questions
procedure but what does that do for the stored proc? I cannot seem to find a
solid answer on this except its good practice.
thanks in advance
robRob,
Read this:
http://www.sql-server-performance.com/stored_procedures.asp
HTH
Jerry
"Rob" <temp@.dstek.com> wrote in message
news:ukfTz%23FyFHA.720@.TK2MSFTNGP15.phx.gbl...
>I know that it is good practice to use NO COUNT and RETURN in a stored
> procedure but what does that do for the stored proc? I cannot seem to find
> a
> solid answer on this except its good practice.
>
> thanks in advance
> rob
>
Couple of questions over SSRS over SSAS
1. How can I change the report parameter from a Date type into a member of the Date dimension? I need to do this because it's easier for business user to select the date and I can set a sensible default to it.
2. How can I create a hourly sales analysis report for all branches? If I add a chart into SSRS, I will get all shop data summing up right now into a single chart. Instead, I would like to have a chart for each branch. My business user will not accept to manually select different branch and generate the required chart.
3. How can I add a percentage to the corresponding value? My business user may want to view the sales performance during 1:00pm ~ 2:00pm comparing to the whole day. Moreover, they may also want to compare the sales on Monday to the sales for the whole week in percentage sense.
Thanks for any advise.
Regards,
AlexI've solved the third question. In order to do this, I need to add a new column to the matrix. After that, I put the following into expression of the new cell to calculate the percentage.
=Count(Fields!Sales_Count.Value)/Count(Fields!Sales_Count.Value, "matrix1_Day")
This solution is available in the book Microsoft SQL Server 2005 Reporting Services by McGrawHill pp.327-331.
Hope this can help someone later on.
Regards,
Alex
Couple of questions for the experienced people out there
internals. They are probably stupid but I am new to sql server.
1. On an insert, select, update, or delete of table rows, if the rows are
not already in the buffer cache
does sql server take the effected rows and put them there? For instance,
if I start up the server and
then immediately issue a delete statement, do the deleted rows go into the
buffer cache? I understand
that the transaction will get written to the transaction log first. I'm
trying to understand when and
exactly what ends up in the buffer cache. A good layman's explanation
would make me a happy man.
2. I have 2 tables with a many to many relationship. I know a join table
is used to accommodate this
scenario. What is the best practice for indexing?
ie
create table student (studentid int... blah, blah)
create table course(courseid int... blah, blah)
create table studentcourse (studentid, courseid)
in the studentcourse table, would the best practice be to add primary key
studentcourseid and indexes
on the other 2 columns? Or no primary key and just the 2 indexes on the 2
columns?
3. Is it a good idea to make an index on a foreign key? If so, why?
Example
create table parent (parentid int primary key....)
create table child (childid int primary key, parentid int) <-- parentid is
defined as a foreign key to parent--
Hope this helps.
Dan Guzman
SQL Server MVP
"Dodo Lurker" <none@.noemailplease> wrote in message
news:BKWdnTLoyrthiHDZnZ2dnUVZ_qCdnZ2d@.comcast.com...
> Hi, I have some unrelated questions borne from my studying of sql server
> internals. They are probably stupid but I am new to sql server.
> 1. On an insert, select, update, or delete of table rows, if the rows
> are
> not already in the buffer cache
> does sql server take the effected rows and put them there? For instance,
> if I start up the server and
> then immediately issue a delete statement, do the deleted rows go into the
> buffer cache? I understand
> that the transaction will get written to the transaction log first. I'm
> trying to understand when and
> exactly what ends up in the buffer cache. A good layman's explanation
> would make me a happy man.
All data access is done in buffer cache. In your delete example, the
affected pages are first be read into memory, where the delete occurs. The
pages remain in memory until the cache is reused. It might be some time
before the pages are written to disk so pages might get changed many times
before being written. However, as you mentioned, a record of the changes is
written to the log.
> 2. I have 2 tables with a many to many relationship. I know a join
> table
> is used to accommodate this
> scenario. What is the best practice for indexing?
> ie
> create table student (studentid int... blah, blah)
> create table course(courseid int... blah, blah)
> create table studentcourse (studentid, courseid)
> in the studentcourse table, would the best practice be to add primary key
> studentcourseid and indexes
> on the other 2 columns? Or no primary key and just the 2 indexes on the 2
> columns?
All tables in a relational database should generally have a primary key.
The primary key of studentcourse is a composite key of studentid and
courseid. It is likely that joins will occur from both the student table
(select a student's courses) and the course table (select a course's
students) so you will probably want a composite index on courseid and
studentid too.
> 3. Is it a good idea to make an index on a foreign key? If so, why?
>
An index on a foreign key column is especially handy when rows are deleted
from the parent. Without one, SQL Server will need to scan the child table
to ensure the relationship isn't violated Of course, the index can also be
useful for queries involving the foreign key column.
> Example
> create table parent (parentid int primary key....)
> create table child (childid int primary key, parentid int) <-- parentid
> is
> defined as a foreign key to parent
>
>
>
Couple of questions for the experienced people out there
internals. They are probably stupid but I am new to sql server.
1. On an insert, select, update, or delete of table rows, if the rows are
not already in the buffer cache
does sql server take the effected rows and put them there? For instance,
if I start up the server and
then immediately issue a delete statement, do the deleted rows go into the
buffer cache? I understand
that the transaction will get written to the transaction log first. I'm
trying to understand when and
exactly what ends up in the buffer cache. A good layman's explanation
would make me a happy man.
2. I have 2 tables with a many to many relationship. I know a join table
is used to accommodate this
scenario. What is the best practice for indexing?
ie
create table student (studentid int... blah, blah)
create table course(courseid int... blah, blah)
create table studentcourse (studentid, courseid)
in the studentcourse table, would the best practice be to add primary key
studentcourseid and indexes
on the other 2 columns? Or no primary key and just the 2 indexes on the 2
columns?
3. Is it a good idea to make an index on a foreign key? If so, why?
Example
create table parent (parentid int primary key....)
create table child (childid int primary key, parentid int) <-- parentid is
defined as a foreign key to parentHope this helps.
Dan Guzman
SQL Server MVP
"Dodo Lurker" <none@.noemailplease> wrote in message
news:BKWdnTLoyrthiHDZnZ2dnUVZ_qCdnZ2d@.co
mcast.com...
> Hi, I have some unrelated questions borne from my studying of sql server
> internals. They are probably stupid but I am new to sql server.
> 1. On an insert, select, update, or delete of table rows, if the rows
> are
> not already in the buffer cache
> does sql server take the effected rows and put them there? For instance,
> if I start up the server and
> then immediately issue a delete statement, do the deleted rows go into the
> buffer cache? I understand
> that the transaction will get written to the transaction log first. I'm
> trying to understand when and
> exactly what ends up in the buffer cache. A good layman's explanation
> would make me a happy man.
All data access is done in buffer cache. In your delete example, the
affected pages are first be read into memory, where the delete occurs. The
pages remain in memory until the cache is reused. It might be some time
before the pages are written to disk so pages might get changed many times
before being written. However, as you mentioned, a record of the changes is
written to the log.
> 2. I have 2 tables with a many to many relationship. I know a join
> table
> is used to accommodate this
> scenario. What is the best practice for indexing?
> ie
> create table student (studentid int... blah, blah)
> create table course(courseid int... blah, blah)
> create table studentcourse (studentid, courseid)
> in the studentcourse table, would the best practice be to add primary key
> studentcourseid and indexes
> on the other 2 columns? Or no primary key and just the 2 indexes on the 2
> columns?
All tables in a relational database should generally have a primary key.
The primary key of studentcourse is a composite key of studentid and
courseid. It is likely that joins will occur from both the student table
(select a student's courses) and the course table (select a course's
students) so you will probably want a composite index on courseid and
studentid too.
> 3. Is it a good idea to make an index on a foreign key? If so, why?
>
An index on a foreign key column is especially handy when rows are deleted
from the parent. Without one, SQL Server will need to scan the child table
to ensure the relationship isn't violated Of course, the index can also be
useful for queries involving the foreign key column.
> Example
> create table parent (parentid int primary key....)
> create table child (childid int primary key, parentid int) <-- parentid
> is
> defined as a foreign key to parent
>
>
>
Couple of questions = )
Does anyone know the max number of Databases a single MSSQL 2000 enterprise machine can handle ??
2.
Does anyone have an idea on how you could use the DTS in MSSQL server to kick a script off on a UNIX machine ??
Chris1. 32,767
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_ts_8dbn.asp
Couple of questions
Server with awe and PAE Enabled. I have heard that 3GB is good and I have
also heard 3 GB is bad with the above setup..
2) We have a 32 bit system and we run into worker thread issues such all 256
worker threads are used and all incoming connections are rejected. Should I
be increasing those worker threads to say 512 ?
3) What is stored in the address space above the 4GB limit ..i.e when i use
awe to address say 6GB , is it only data/index pages that reside in that
region of memory above the 4GB limit ?
4) Is user connection memory, procedure cache stored in mem to leave area ?
We are using SQL 2000 EE
ThanksAnswers Inline
"Hassan" <Hassan@.hotmail.com> wrote in message
news:%2300axugfGHA.2068@.TK2MSFTNGP02.phx.gbl...
> 1) To use or not to use the 3GB switch. We have 8GB of RAM and just run
> SQL Server with awe and PAE Enabled. I have heard that 3GB is good and I
> have also heard 3 GB is bad with the above setup..
>
3GB is usually OK up to 12 GB total system RAM. Above that it is not
recommended
> 2) We have a 32 bit system and we run into worker thread issues such all
> 256 worker threads are used and all incoming connections are rejected.
> Should I be increasing those worker threads to say 512 ?
How many processers do you have? Are they running above 90% at the time of
the incoming rejections?
> 3) What is stored in the address space above the 4GB limit ..i.e when i
> use awe to address say 6GB , is it only data/index pages that reside in
> that region of memory above the 4GB limit ?
>
AWE memory is not addressable and is used for data cache only.
> 4) Is user connection memory, procedure cache stored in mem to leave area
> ?
No, with one exception. If you are using large packets, then user
connection memory may come out of mem-to-leave if the system has to use OS
network buffers rather than SQL network buffers.
> We are using SQL 2000 EE
> Thanks
>
>
Geoff N. Hiten
Senior Database Administrator
Microsoft SQL Server MVP|||Thanks Geoff..
1) So what are we missing out on for not using 3GB if we have less than 12GB
of RAM ?
2) We have seen worker thread problems on our high OLTP systems. Some
possible causes could be h/w related such as disk IO issue causing slowness
in response times all revolving around blocking..So say if the blocking
sproc runs for 10 secs all of a sudden, but there are around 1000 sprocs
that want to execute and read of that blocked table, then in no time, we run
out of threads and connections are not honored.
3) With AWE , does data flow from the non addressable memory to addressable
memory ?
"Geoff N. Hiten" <SQLCraftsman@.gmail.com> wrote in message
news:ehrOAIhfGHA.3652@.TK2MSFTNGP02.phx.gbl...
> Answers Inline
> "Hassan" <Hassan@.hotmail.com> wrote in message
> news:%2300axugfGHA.2068@.TK2MSFTNGP02.phx.gbl...
> 3GB is usually OK up to 12 GB total system RAM. Above that it is not
> recommended
>
> How many processers do you have? Are they running above 90% at the time
> of the incoming rejections?
>
> AWE memory is not addressable and is used for data cache only.
>
> No, with one exception. If you are using large packets, then user
> connection memory may come out of mem-to-leave if the system has to use OS
> network buffers rather than SQL network buffers.
>
>
> --
> Geoff N. Hiten
> Senior Database Administrator
> Microsoft SQL Server MVP
>
>|||More Inline
"Hassan" <Hassan@.hotmail.com> wrote in message
news:%23dYzJghfGHA.1456@.TK2MSFTNGP04.phx.gbl...
> Thanks Geoff..
> 1) So what are we missing out on for not using 3GB if we have less than
> 12GB of RAM ?
>
/3GB allows for more SQL addressable memory. Depending on your system, this
may improve performance. As with any config change, test both before and
after to see if it improves things. In most cases with system memory above
4GB and less than or equal to 12GB, you will see an improvement.
> 2) We have seen worker thread problems on our high OLTP systems. Some
> possible causes could be h/w related such as disk IO issue causing
> slowness in response times all revolving around blocking..So say if the
> blocking sproc runs for 10 secs all of a sudden, but there are around 1000
> sprocs that want to execute and read of that blocked table, then in no
> time, we run out of threads and connections are not honored.
>
Monitor your current disk queue length counters for your data and log disks.
If you are having IO stalls, you will need to improve the IO subsystem
before any worker thread count improvements will help. This is why I
hesitate to recommend a specific change over the newsgroups. You need to
find the root cause of your performance issues. Sometimes one issue, such
as an I/O weakness, can show up as memory or CPU pressure to casual
observation.
> 3) With AWE , does data flow from the non addressable memory to
> addressable memory ?
>
That is why you have to limit the use of the /3GB switch. AWE is much like
the old EXTENDED and EXPANDED RAM from the '268 days where a window of low
(or in this case addressable) memory is used to map into the non-addressable
memory. This is done via the OS memory area, so if you squeeze it too much
on very large memory systems, you introduce some severe performance issues.
The OS needs the extra memory to handle to address windows.
Geoff N. Hiten
Senior Database Administrator
Microsoft SQL Server MVP
> "Geoff N. Hiten" <SQLCraftsman@.gmail.com> wrote in message
> news:ehrOAIhfGHA.3652@.TK2MSFTNGP02.phx.gbl...
>
Couple of questions
Server with awe and PAE Enabled. I have heard that 3GB is good and I have
also heard 3 GB is bad with the above setup..
2) We have a 32 bit system and we run into worker thread issues such all 256
worker threads are used and all incoming connections are rejected. Should I
be increasing those worker threads to say 512 ?
3) What is stored in the address space above the 4GB limit ..i.e when i use
awe to address say 6GB , is it only data/index pages that reside in that
region of memory above the 4GB limit ?
4) Is user connection memory, procedure cache stored in mem to leave area ?
We are using SQL 2000 EE
ThanksAnswers Inline
"Hassan" <Hassan@.hotmail.com> wrote in message
news:%2300axugfGHA.2068@.TK2MSFTNGP02.phx.gbl...
> 1) To use or not to use the 3GB switch. We have 8GB of RAM and just run
> SQL Server with awe and PAE Enabled. I have heard that 3GB is good and I
> have also heard 3 GB is bad with the above setup..
>
3GB is usually OK up to 12 GB total system RAM. Above that it is not
recommended
> 2) We have a 32 bit system and we run into worker thread issues such all
> 256 worker threads are used and all incoming connections are rejected.
> Should I be increasing those worker threads to say 512 ?
How many processers do you have? Are they running above 90% at the time of
the incoming rejections?
> 3) What is stored in the address space above the 4GB limit ..i.e when i
> use awe to address say 6GB , is it only data/index pages that reside in
> that region of memory above the 4GB limit ?
>
AWE memory is not addressable and is used for data cache only.
> 4) Is user connection memory, procedure cache stored in mem to leave area
> ?
No, with one exception. If you are using large packets, then user
connection memory may come out of mem-to-leave if the system has to use OS
network buffers rather than SQL network buffers.
> We are using SQL 2000 EE
> Thanks
>
>
Geoff N. Hiten
Senior Database Administrator
Microsoft SQL Server MVP|||Thanks Geoff..
1) So what are we missing out on for not using 3GB if we have less than 12GB
of RAM ?
2) We have seen worker thread problems on our high OLTP systems. Some
possible causes could be h/w related such as disk IO issue causing slowness
in response times all revolving around blocking..So say if the blocking
sproc runs for 10 secs all of a sudden, but there are around 1000 sprocs
that want to execute and read of that blocked table, then in no time, we run
out of threads and connections are not honored.
3) With AWE , does data flow from the non addressable memory to addressable
memory ?
"Geoff N. Hiten" <SQLCraftsman@.gmail.com> wrote in message
news:ehrOAIhfGHA.3652@.TK2MSFTNGP02.phx.gbl...
> Answers Inline
> "Hassan" <Hassan@.hotmail.com> wrote in message
> news:%2300axugfGHA.2068@.TK2MSFTNGP02.phx.gbl...
>> 1) To use or not to use the 3GB switch. We have 8GB of RAM and just run
>> SQL Server with awe and PAE Enabled. I have heard that 3GB is good and I
>> have also heard 3 GB is bad with the above setup..
> 3GB is usually OK up to 12 GB total system RAM. Above that it is not
> recommended
>> 2) We have a 32 bit system and we run into worker thread issues such all
>> 256 worker threads are used and all incoming connections are rejected.
>> Should I be increasing those worker threads to say 512 ?
> How many processers do you have? Are they running above 90% at the time
> of the incoming rejections?
>> 3) What is stored in the address space above the 4GB limit ..i.e when i
>> use awe to address say 6GB , is it only data/index pages that reside in
>> that region of memory above the 4GB limit ?
> AWE memory is not addressable and is used for data cache only.
>> 4) Is user connection memory, procedure cache stored in mem to leave area
>> ?
> No, with one exception. If you are using large packets, then user
> connection memory may come out of mem-to-leave if the system has to use OS
> network buffers rather than SQL network buffers.
>
>> We are using SQL 2000 EE
>> Thanks
>>
>
> --
> Geoff N. Hiten
> Senior Database Administrator
> Microsoft SQL Server MVP
>
>|||More Inline
"Hassan" <Hassan@.hotmail.com> wrote in message
news:%23dYzJghfGHA.1456@.TK2MSFTNGP04.phx.gbl...
> Thanks Geoff..
> 1) So what are we missing out on for not using 3GB if we have less than
> 12GB of RAM ?
>
/3GB allows for more SQL addressable memory. Depending on your system, this
may improve performance. As with any config change, test both before and
after to see if it improves things. In most cases with system memory above
4GB and less than or equal to 12GB, you will see an improvement.
> 2) We have seen worker thread problems on our high OLTP systems. Some
> possible causes could be h/w related such as disk IO issue causing
> slowness in response times all revolving around blocking..So say if the
> blocking sproc runs for 10 secs all of a sudden, but there are around 1000
> sprocs that want to execute and read of that blocked table, then in no
> time, we run out of threads and connections are not honored.
>
Monitor your current disk queue length counters for your data and log disks.
If you are having IO stalls, you will need to improve the IO subsystem
before any worker thread count improvements will help. This is why I
hesitate to recommend a specific change over the newsgroups. You need to
find the root cause of your performance issues. Sometimes one issue, such
as an I/O weakness, can show up as memory or CPU pressure to casual
observation.
> 3) With AWE , does data flow from the non addressable memory to
> addressable memory ?
>
That is why you have to limit the use of the /3GB switch. AWE is much like
the old EXTENDED and EXPANDED RAM from the '268 days where a window of low
(or in this case addressable) memory is used to map into the non-addressable
memory. This is done via the OS memory area, so if you squeeze it too much
on very large memory systems, you introduce some severe performance issues.
The OS needs the extra memory to handle to address windows.
--
Geoff N. Hiten
Senior Database Administrator
Microsoft SQL Server MVP
> "Geoff N. Hiten" <SQLCraftsman@.gmail.com> wrote in message
> news:ehrOAIhfGHA.3652@.TK2MSFTNGP02.phx.gbl...
>> Answers Inline
>> "Hassan" <Hassan@.hotmail.com> wrote in message
>> news:%2300axugfGHA.2068@.TK2MSFTNGP02.phx.gbl...
>> 1) To use or not to use the 3GB switch. We have 8GB of RAM and just run
>> SQL Server with awe and PAE Enabled. I have heard that 3GB is good and I
>> have also heard 3 GB is bad with the above setup..
>>
>> 3GB is usually OK up to 12 GB total system RAM. Above that it is not
>> recommended
>> 2) We have a 32 bit system and we run into worker thread issues such all
>> 256 worker threads are used and all incoming connections are rejected.
>> Should I be increasing those worker threads to say 512 ?
>> How many processers do you have? Are they running above 90% at the time
>> of the incoming rejections?
>>
>> 3) What is stored in the address space above the 4GB limit ..i.e when i
>> use awe to address say 6GB , is it only data/index pages that reside in
>> that region of memory above the 4GB limit ?
>> AWE memory is not addressable and is used for data cache only.
>> 4) Is user connection memory, procedure cache stored in mem to leave
>> area ?
>> No, with one exception. If you are using large packets, then user
>> connection memory may come out of mem-to-leave if the system has to use
>> OS network buffers rather than SQL network buffers.
>>
>> We are using SQL 2000 EE
>> Thanks
>>
>>
>> --
>> Geoff N. Hiten
>> Senior Database Administrator
>> Microsoft SQL Server MVP
>>
>
Couple of question about SQL 2000
I've bin using MySQL and now trying to convert it on to SQL 2000 and i've got a couple of questions
1. Ive got a SQL Script of a database generated by MySQL, can i run this script stright into SQL 2000 and if so how do i go about it ??
2. In my MySQL i have a Gender field which data type is Enum ('M','F'). How do i recreate this type of field in SQL 2000.
Thanks1) Go to start programs/microsoft sql server/query analyzer. Connect to your DB and run the code
2) I would use a bit field, a bit field can be 0 or 1, you can handle the translation in the front end.
HTH|||Hi thanks for your help
just to be a pain, if i wanted 3 or 4 options would the field type be varchar and i'd have the sort the options out in my application
is this right
thanks again
Originally posted by rhigdon
1) Go to start programs/microsoft sql server/query analyzer. Connect to your DB and run the code
2) I would use a bit field, a bit field can be 0 or 1, you can handle the translation in the front end.
HTH|||It's not going to compile...you need to determine the differences and develop a migration plan..
Do a google...
http://www.databasejournal.com/features/mssql/article.php/3087841
Couple of Qucik Questions
can render!!
I've just got a couple of quick questions and looking for mostly feedback
and opinion versus cut and dry ansswers...
- I was wondering what is the TRUE impact/overhead of the various SQL Server
Replication agents? Specifically the Distribution and Log Readerr agents. A
client I'm at is concerned they will needlessly tax the server. I assured
them that the impact would be minimal at best, but a couple of people just
think it will cause the server to just get beat down.
- To replicate data between two servers that are geographically located in
different parts of the country, is VPN absolutely necessary? Would enabling
multi-protocol encryption suffice to provide adequate security?
- How much impact can one expect from transactional replication on the
network? I again told them you will have some latency between when the
transaction occurs at the publisher and when it is applied at the subscriber.
They're concerned about the NIC on the publisher getting "congested" with
replication traffic and general production activities. I suggested a second
NIC on the publisher and subscriber, both utilizing a "private" IP address
dedicated solely to replication.
- What type of backup strategy have people used for the Distribution
database? In the past, I haven't really though about backing up Distribution.
Again, thanks for any input.
answers inline.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"A. Robinson" <ARobinson@.discussions.microsoft.com> wrote in message
news:FFF39C2B-04E0-4549-930B-2FDDE827E983@.microsoft.com...
> First of all, would like to thank everyone on advance for any assistance
you
> can render!!
> I've just got a couple of quick questions and looking for mostly feedback
> and opinion versus cut and dry ansswers...
> - I was wondering what is the TRUE impact/overhead of the various SQL
Server
> Replication agents? Specifically the Distribution and Log Readerr agents.
A
> client I'm at is concerned they will needlessly tax the server. I assured
> them that the impact would be minimal at best, but a couple of people just
> think it will cause the server to just get beat down.
This is a function of the load on your database, and your hardware on your
publisher and subscriber. The load is minimal for transactional replication
and will probably consume less than 10% of your cpu. However it is hard to
quantify what the impact on your system will be.
> - To replicate data between two servers that are geographically located in
> different parts of the country, is VPN absolutely necessary? Would
enabling
> multi-protocol encryption suffice to provide adequate security?
For a truly secure solution you should be using a VPN. You can use
multi-protocol, however across the interenet you will be running TCP/IP.
> - How much impact can one expect from transactional replication on the
> network? I again told them you will have some latency between when the
> transaction occurs at the publisher and when it is applied at the
subscriber.
> They're concerned about the NIC on the publisher getting "congested" with
> replication traffic and general production activities. I suggested a
second
> NIC on the publisher and subscriber, both utilizing a "private" IP address
> dedicated solely to replication.
All SQL related activity is relatively chatty. I have run replication in
several large topologies and we have never had a problem with network
staturation. You can measure this as a performace monitor counter on your
nic card.
> - What type of backup strategy have people used for the Distribution
> database? In the past, I haven't really though about backing up
Distribution.
>
Backing up your distribution database must be done in tandem with the msdb,
and publication database. There is a sync with backup option which allows
you to ship these databases to a standby server to achive some measure of
point in time recovery.
> Again, thanks for any input.
Couple of newbie questions
I'm working on the configuration and have a few questions. We are planning on going with a SQL Server 2000 Standard Edition running on Windows 2000 Server. Some of what Microsoft has said on the web site is very vague concerning the licensing and other maximums.
What is the max memory that you can use with SQL Standard on a Windows 2000 Server (not Advanced)?
If you have more memory in the server than SQL Standard will support, is that OK? For example, can you say, if SQL Standard maxes out at 2 GB, put in 3 GB, and let the OS have the rest? Our database will probably be around 2 GB to start.
Do you need seperate CALs on Windows 2000, or does it work like other apps like Exchange, where you only need the CAL's for the application (or in this case, the Processor licences).
For a 3 processor server, does anyone think that for about 60-70 users that I should go with a CAL or Processor license model?
Should I spring for the 2MB cache on the processor? Planning on a 3 way 700 Mhz Xeon.
Thanks in advance.According to Books Online:
1. What is the max memory that you can use with SQL Standard on a Windows 2000 Server (not Advanced)?
2GB is the maximum that SQL Std can use.
2. If you have more memory in the server than SQL Standard will support, is that OK? For example, can you say, if SQL Standard maxes out at 2 GB, put in 3 GB, and let the OS have the rest? Our database will probably be around 2 GB to start.
If the OS can see the additional RAM, this should be ok. I cannot think how much memory that Win2k std can use.
3. Do you need seperate CALs on Windows 2000, or does it work like other apps like Exchange, where you only need the CAL's for the application (or in this case, the Processor licences).
If you go with per processor licensing of SQL Server, that is all you need.
4. For a 3 processor server, does anyone think that for about 60-70 users that I should go with a CAL or Processor license model?
I found SQL2k Std per processor licensing at ~4500 multiplied by 3 you would be at ~$13,500
I found SQL2k Std 10 client for $2000. If you purchased 7 of these (70 user), you would be at ~$14,000
Right now, the price is about the same. You need to weigh the options, and look toward the future.
What happens if the 3 processor server needs 5 more processors? What happens if you add 40 more users? How will this impact your licenses (and cost)?
5. Should I spring for the 2MB cache on the processor? Planning on a 3 way 700 Mhz Xeon.
I don't know. What is the price difference between 2MB, 1MB, and 'normal' Xeons? We have an 8 way 700 with 2MB cache and things perform quite well. I am sure that we paid a premium for the 2MB chips...I do not know what performance would be like if we had lesser Xeons. Maybe someone else can help out here with some suggestions.
________________
Keith|||2. If you have more memory in the server than SQL Standard will support, is that OK? For example, can you say, if SQL Standard maxes out at 2GB, put in 3 GB, and let the OS have the rest? Our database will probably be around 2 GB to start.
Win2k and NT Standard see 4GIG max which is the memory space directly addressable by a a 32bit operating system.
The 2 gig limit for SQL Server comes from the fact that the NT architecture has a 2gig per process memory limit.
5. Should I spring for the 2MB cache on the processor? Planning on a 3 way 700 Mhz Xeon.
It's hard to say. All of our SQL Servers now have 2MB processor caches. We had one Dell 4-way server with 512K (standard) caches that severely under-performed and was replaced by a Compaq server. But the Compaq server was much more carefully specified so direct comparisons are tough. I know this. I've read of people with performance problems when CPU utilization is at 100% on all 4 processors. On our Compaq servers, when all four processors are at 100%, people can still work. It's a little slower, but almost goes unnoticed except by those that cause the performance spike (period end processes, some custom reports). On the Dell, if all 4 where at 100% no one moved. It would stop everyone in their tracks. Compaq's processor multi-processor architecture probably has something to do with it, but I bet the 2MB cache in each processor has something to do with it also.
If the cost is not unreasonable go for the 2mb cache. We choose slower processors with 2MB cache over a faster processor with 512k or 1mb and haven't looked back.|||Thanks for the repsonse. It will be a few thousand more to upgrade from the 1 MB to 2 MB cache, so it may be difficult to get that passed through our budget.
Out of curiosity, how many users are you guys dealing with? I'll be around 50 concurrent to start, while not expecting that number to go up to more than 75 any time soon (a few years off).|||We have about 60 users hitting the system full time.
Keep in mind, it is not so much the user count, but the way the application and database were created that really affects performance.
________________
Keith|||I don't even know exactly right now. Probably right around 35-60 depending on the time of day. But really it's not the number of users, but the work you expect the server to perform for those users.
Our primary server runs an accounting and distribution package that is heavily optimized for SQL Server and WAN environments relying on Triggers, and stored procedures, and temp tables for reports. (And not measly select * from thistable stored procedures, these are real ones that do real work.) This application works the server. 1MB may be just fine. At the time we specified the hardware we had the choice of 1mb cache and 650Mhz processors or 2mb Cache and 450mhz processors to fit in our price range. We went with the 450mhz processors and 2mb cache. 20
Make sure your application isn't just a fancy data store. We way equipped some hardware we have right now for a mission critical clustered solution. Quad processor Active/Active Compaq machines with 4gig each running SQL Enterprise and NT Enterprise, and we get the app installed on a test machine and I find it was ported from Oracle and AS/400 and is mostly flat files stored in the database. No stored procedures, no referential integrity, hardly even any indexes. The groupresponsible for getting the hardware obviously didn't do their researchfirst. Such a database will hardly be taxing the CPU's and is more likely to have blocking issues than performance issues. I can't wait until we go live...
Couple of Easy Questions, newbie here
ok i have found the solution for modifying the schedule here How to: Specify Synchronization Schedules (SQL Server Management Studio)
now i am searching for how can i edit publication(article(s))
Couple more fixes to merge replication problems
First problem is occuring on SQL Server 2000 version 8.00.818 (and most
probably on all higher versions which are currently available).
Problem is related to a new security enhancements which were introduced in
this version. When merge publication article is added, a number of (system)
stored procedures are created to perform some actions on that article. One
of those procedures has a an extention "_pal" at the end of the name. The
problem is that this particular procedure is not marked as a system object.
All other generated procedures are marked as a system object. This is
causing a failure in replication - sometimes data is simply not replicated,
and no errors are shown in replication monitor

This problem is caused by a copy-paste (obviously) bug in stored procedure
sp_MSsetartprocs. One of the created procedures is marked as a system object
for two times, and procedure with "_pal" at the end of the name is not
merked (see attached fix script).
Second problem is a little bit more "widespread". It is occuring on SQL
Server 2000 version 8.00.760 (SP3a) and also on 8.00.818 (and most probably
on all higher versions which are currently available).
Problem is related to filtered merge publications, with objects not owned by
dbo. When column is being dropped (using sp_repldropcolumn) from merge
publication article which is participating in filtering, an error is
occuring (objects can not be found). It is happening because of the most
common reason in similar cases - incorrect usage of user-qualified names. In
this case problem is in stored procedure sp_mergearticlecolumn. For more
details, see fixes in attached script.
As far as I know, or I should say, "as Hillary said

fix this problematic with "non dbo owned objects in merge replication" for
SP4, so hopefully these simple fixes could also be included

Regards,
Kestutis Adomavicius
Consultant
UAB "Baltic Software Solutions"
begin 666 Fixed - sp_MSsetartprocs.sql
M<W!?8V]N9FEG=7)E($!C;VYF:6=N86UE(#T@.)V%L;&]W('5P9&%T97,G+"!
M8V]N9FEG=F%L=64@./2 G,2<-"D=/#0I214-/3D9)1U5212!7251(($]615)2
M241%#0I'3PT*#0IA;'1E<B!P<F]C961U<F4@.<W!?35-S971A<G1P<F]C<PT*
M"2A <'5B;&EC871I;VX)"7-Y<VYA;64L#0H)0&%R=&EC;&4)"0ES>7-N86UE
M+ T*"4!F;W)C95]F;&%G( D):6YT(#T@.,"D-"F%S#0H)9&5C;&%R92! ;W=N
M97)N86UE('-Y<VYA;64-"@.ED96-L87)E($!O8FIE8W1N86UE('-Y<VYA;64-
M"@.ED96-L87)E($!G=6ED<W1R(&YV87)C:&%R*#0P*0T*"61E8VQA<F4@.0 '!U
M8FED<W1R(&YV87)C:&%R*#0P*0T*"61E8VQA<F4@.0&-O;F9L:6-T7W!R;V,@.
M<WES;F%M90T*"61E8VQA<F4@.0&-O;F9L:6-T7W1A8FQE('-Y<VYA;64-"@.ED
M96-L87)E($!S;F%P<VAO=%]R96%D>2!I;G0-"@.ED96-L87)E($!I;G-?<')O
M8VYA;64@.<WES;F%M90T*"61E8VQA<F4@.0'-E;%]P<F]C;F%M92!S>7-N86UE
M#0H)9&5C;&%R92! <V5L7W!R;V-N86UE7W!A;"!S>7-N86UE#0H)9&5C;&%R
M92! =7!D7W!R;V-N86UE('-Y<VYA;64-"@.ED96-L87)E($!V:65W7W-E;'!R
M;V-N86UE(&YV87)C:&%R*#(Y,"D-"@.ED96-L87)E($!V:65W;F%M92!S>7-N
M86UE#0H)9&5C;&%R92! 87)T:60@.=6YI<75E:61E;G1I9FEE<@.T*"61E8VQA
M<F4@.0'!U8FED('5N:7%U96ED96YT:69I97(-"@.ED96-L87)E($!O8FII9"!I
M;G0-"B @.("!D96-L87)E($!R9V-O;"!N=F%R8VAA<B@.Q-# I#0H)9&5C;&%R
M92! <WEN8U]O8FII9"!I;G0-"@.ED96-L87)E($!R971C;V1E('-M86QL:6YT
M#0H)9&5C;&%R92! 9&)N86UE('-Y<VYA;64-"@.ED96-L87)E($!C;VUM86YD
M("!N=F%R8VAA<B@.Q,# P*0T*"0T*"7-E="!N;V-O=6YT(&]N#0H)+RH-"@.DJ
M*B!#:&5C:R!T;R!S964@.:68@.8W5R<F5N="!P=6)L:6-A=&EO;B!H87,@.<&5R
M;6ES<VEO;@.T*"2HO#0H)97AE8R! <F5T8V]D93US<%]-4W)E<&QC:&5C:U]P
M=6)L:7-H#0H):68@.0')E=&-O9&4\/C @.;W(@.0$!%4E)/4CP^,"!R971U<FX@.
M*#$I#0H)#0H)+2T@.9FEG=7)E(&]U="!P=6)I9"!A;F0@.87)T:60-"@.EI9B!
M9F]R8V5?9FQA9R ](#$-"@.D)8F5G:6X-"@.D)+2T@.9&]N)W0@.<75A;&EF>2!T
M:&%T(&UU<W0@.8F4@.<'5B;&ES:&5R('=H96X@.=V4@.87)E(&9O< F-I;F<@.<F5M
M86ME(&%T('-U8G-C<FEB97)S#0H)"7-E;&5C="! <'5B:60@./2!P=6)I9"P@.
M0'-N87!S:&]T7W)E861Y/7-N87!S:&]T7W)E861Y(&9R;VT@.<WES;65R9V5P
M=6)L:6-A=&EO;G,@.=VAE<F4@.;F%M92 ]($!P=6)L:6-A=&EO;B!A;F0@.#0H)
M"0EP=6)I9"!I;B H<V5L96-T('!U8FED(&9R;VT@.<WES;65R9V5A<G1I8VQE
M<R!W:&5R92!N86UE/4!A<G1I8VQE*0T*"0EE;F0-"@.EE;'-E#0H)"7-E;&5C
M="! <'5B:60@./2!P=6)I9"P@.0'-N87!S:&]T7W)E861Y/7-N87!S:&]T7W)E
M861Y( T*"0D)9G)O;2!S>7-M97)G97!U8FQI8V%T:6]N<R!W:&5R92!N86UE
M(#T@.0'!U8FQI8V%T:6]N(&%N9"!54%!%4BAP=6)L:7-H97(I/5504$52*$!
M4T525D523D%-12D@.86YD('!U8FQI<VAE<E]D8CUD8E]N86UE*"D-"B @.("!I
M9B! <'5B:60@.25,@.3E5,3 T*(" @.(" @.("!"14=)3@.T*"0D)4D%)4T524D]2
M("@.R,# R-BP@.,38L("TQ+"! <'5B;&EC871I;VXI#0H@.(" @."2 @.("!21515
M4DX@.*#$I#0H@.(" @.(" @.($5.1 T*#0H)<V5L96-T($!C;VYF;&EC=%]T86)L
M93U.54Q,#0H)<V5L96-T($!A<G1I9" ](&%R=&ED+"! ;V)J:60@./2!O8FII
M9"P@.0'-Y;F-?;V)J:60@./2!S>6YC7V]B:FED+"! 8V]N9FQI8W1?=&%B;&4]
M8V]N9FQI8W1?=&%B;&4@.1E)/32!S>7-M97)G96%R=&EC;&5S(%=(15)%(&YA
M;64@./2! 87)T:6-L90E!3D0@.<'5B:60@./2! <'5B:60-"B @.("!I9B! 87)T
M:60@.25,@.3E5,3 T*(" @.(" @.("!"14=)3@.T*"0D)4D%)4T524D]2("@.R,# R
M-RP@.,38L("TQ+"! 87)T:6-L92D-"B @.(" @.(" @.(" @.(%)%5%523B H,2D-
M"B @.(" @.(" @.14Y$#0H-"@.DO*B!$<F]P('1H92!A<G1I8VQE('!R;V-S(&EF
M('1H97D@.<')E97AI<W0@.*B\-"@.EE>&5C($!R971C;V1E(#T@.9&)O+G-P7TU3
M9')O<&%R=&EC;&5P<F]C<R! <'5B:60L($!A<G1I9 T*"6EF($! 15)23U(\
M/C @.3U(@.0')E=&-O9&4\/C @.#0H)"6)E9VEN#0H)"0ER971U<FX@.*#$I#0H)
M"65N9 T*"0T*"2TM(&=E="!O=VYE<B!N86UE+"!A;F0@.=&%B;&4@.;F%M 90T*
M"7-E;&5C="! ;V)J96-T;F%M92 ](&YA;64L($!O=VYE<FYA;64@./2!U<V5R
M7VYA;64H=6ED*0EF<F]M('-Y<V]B:F5C=',-"@.D)=VAE<F4@.:60@./2! ;V)J
M:60@.#0H-"@.DM+2!M86ME('1H92!I;G-E<G0@.86YD('5P9&%T92!P<F]C(&YA
M;65S#0H)97AE8R! <F5T8V]D92 ](&1B;RYS<%]-4V=U:61T;W-T<B! 87)T
M:60L($!G=6ED<W1R(&]U= T*"6EF($! 15)23U(@./#XP($]2($!R971C;V1E
M(#P^,"!R971U<FX@.*#$I#0H-"@.EE>&5C($!R971C;V1E(#T@.9&)O+G-P7TU3
M9W5I9'1O<W1R($!P=6)I9"P@.0'!U8FED<W1R(&]U= T*"6EF($! 15)23U(@.
M/#XP($]2($!R971C;V1E(#P^,"!R971U<FX@.*#$I#0H-"@.ES96QE8W0@.0&EN
M<U]P<F]C;F%M92 ]("=S<%]I;G-?)R K('-U8G-T<FEN9RA 9W5I9'-T<BP@.
M,2P@.,38I("L@.<W5B<W1R:6YG*$!P=6)I9'-T<BP@.,2P@.,38I#0H)97AE8R!D
M8F\N<W!?35-U;FEQ=65O8FIE8W1N86UE($!I;G-?<')O8VYA;64L($!I;G-?
M<')O8VYA;64@.;W5T<'5T#0H):68@.0$!%4E)/4B \/C @.3U(@.0')E=&-O9&4@.
M/#XP(')E='5R;B H,2D-"@.D-"@.ES96QE8W0@.0'5P9%]P<F]C;F%M92 ]("=S
M<%]U<&1?)R K('-U8G-T<FEN9RA 9W5I9'-T<BP@.,2P@.,38I("L@.<W5B<W1R
M:6YG*$!P=6)I9'-T<BP@.,2P@.,38I#0H)97AE8R!D8F\N<W!?35-U;FEQ=65O
M8FIE8W1N86UE($!U<&1?<')O8VYA;64L($!U<&1?<')O8VYA; 64@.;W5T<'5T
M#0H):68@.0$!%4E)/4B \/C @.3U(@.0')E=&-O9&4@./#XP(')E='5R;B H,2D-
M"@.T*"7-E;&5C="! <V5L7W!R;V-N86UE(#T@.)W-P7W-E;%\G("L@.<W5B<W1R
M:6YG*$!G=6ED<W1R+" Q+" Q-BD@.*R!S=6)S=')I;F<H0'!U8FED<W1R+" Q
M+" Q-BD-"@.EE>&5C(&1B;RYS<%]-4W5N:7%U96]B:F5C=&YA;64@.0'-E;%]P
M<F]C;F%M92P@.0'-E;%]P<F]C;F%M92!O=71P=70-"@.EI9B! 0$524D]2(#P^
M,"!/4B! <F5T8V]D92 \/C @.<F5T=7)N("@.Q*0T*#0H)<V5L96-T($!S96Q?
M<')O8VYA;65?<&%L(#T@.)W-P7W-E;%\G("L@.<W5B<W1R:6YG*$!G=6ED<W1R
M+" Q+" Q-BD@.*R!S=6)S=')I;F<H0'!U8FED<W1R+" Q+" Q-BD@.*R G7W!A
M;"<-"@.EE>&5C(&1B;RYS<%]-4W5N:7%U96]B:F5C=&YA;64@.0'-E;%]P<F]C
M;F%M95]P86PL($!S96Q?<')O8VYA;65?<&%L(&]U='!U= T*"6EF($! 15)2
M3U(@./#XP($]2($!R971C;V1E(#P^,"!R971U<FX@.*#$I#0H-"@.ES970@.0'9I
M97=?<V5L<')O8VYA;64@./2 G<V5L7R<@.*R!S=6)S=')I;F<H0&=U:61S='(L
M(#$L(#$V*2 K('-U8G-T<FEN9RA <'5B:61S='(L(#$L(#$V*0T*(" @.(&5X
M96,@.0')E=&-O9&4@./2!D8F\N<W!?35-U;FEQ=65O8FIE8W1N86UE($!V:65W
M7W-E;'!R;V-N86UE("P@.0'9I97=?<V5L<')O8VYA;64@.;W5T<'5T#0H@.(" @.
M:68@.0')E=&-O9&4@./#X@.,"!O<B! 0$524D]2(#P^(# @.<F5T=7)N("@.Q*2 -
M"@.T*"2TM(&-R96%T92!T:&4@.<')O8W,-"@.ES970@.0&1B;F%M92 ](&1B7VYA
M;64H*0T*#0H)<V5T($!C;VUM86YD(#T@.)W-P7TU3;6%K96EN<V5R='!R;V,@.
M)R K(%%53U1%3D%-12A ;V)J96-T;F%M92D@.*R G("P@.)R K(%%53U1%3D%-
M12A ;W=N97)N86UE*2 K("<@.+" G("L@.0&EN<U]P<F]C;F%M92 @.*R G+"!;
M)R K(&-O;G9E<G0H;F-H87(H,S8I+"! <'5B:60I("L@.)UTG#0H-"@.EE>&5C
M($!R971C;V1E(#T@.;6%S=&5R+BYX<%]E>&5C<F5S=6QT<V5T($!C;VUM86YD
M+"! 9&)N86UE#0H-"@.EI9B! 0$524D]2/#XP($]2($!R971C;V1E/#XP( T*
M"0EB96=I;@.T*"0D)<F5T=7)N("@.Q*0T*"0EE;F0-"@.T*#0H)97AE8R! <F5T
M8V]D92 ](&1B;RYS<%]-4U]M87)K<WES=&5M;V)J96-T("! :6YS7W!R;V-N
M86UE( T*"6EF($! 15)23U(\/C @.;W(@.0')E=&-O9&4\/C @.(')E='5R;B H
M,2D-"@.D-"@.EE>&5C("@.G9W)A;G0@.97AE8R!O;B G("L@.0&EN<U]P<F]C;F%M
M92 K("<@.=&\@.<'5B;&EC)RD-"@.ES970@.0&-O;6UA;F0@./2 G<W!?35-M86ME
M=7!D871E<')O8R G("L@.455/5$5.04U%*$!O8FIE8W1N86UE*2 K("<@.+" G
M("L@.455/5$5.04U%*$!O=VYE<FYA;64I("L@.)R L("<@.*R! =7!D7W!R;V-N
M86UE("L@.)RP@.6R<@.*R!C;VYV97)T*&YC:&%R*#,V*2P@.0'!U8 FED*2 K("==
M)PT*"65X96,@.0')E=&-O9&4@./2!M87-T97(N+GAP7V5X96-R97-U;'1S970@.
M0&-O;6UA;F0L($!D8FYA;64-"@.EI9B! 0$524D]2/#XP($]2($!R971C;V1E
M/#XP( T*"0EB96=I;@.T*"0D)<F5T=7)N("@.Q*0T*"0EE;F0-"@.EE>&5C($!R
M971C;V1E(#T@.9&)O+G-P7TU37VUA<FMS>7-T96UO8FIE8W0@.($!U<&1?<')O
M8VYA;64@.#0H):68@.0$!%4E)/4CP^,"!O<B! <F5T8V]D93P^,"!R971U<FX@.
M*#$I#0H)97AE8R H)V=R86YT(&5X96,@.;VX@.)R K($!U<&1?<')O8VYA;64@.
M*R G('1O('!U8FQI8R<I#0H):68@.0$!%4E)/4CP^,"!R971U<FX@.*#$I#0H)
M#0H)<V5T($!C;VUM86YD/2 G4T54($%.4TE?3E5,3%,@.3TX@.4T54(%%53U1%
M1%])1$5.5$E&2452($].)PT*"65X96,@.*$!C;VUM86YD*0T*"6EF($! 15)2
M3U(\/C @.<F5T=7)N("@.Q*0T*"7-E="! 8V]M;6%N9" ]("=S<%]-4VUA:V5S
M96QE8W1P<F]C("<@.*R!154]414Y!344H0&]B:F5C=&YA;64I("L@.)R L("<@.
M*R!154]414Y!344H0&]W;F5R;F%M92DK("<@.+" G("L@.0'-E;%]P<F]C;F%M
M92 K("<L(%LG("L@.8V]N=F5R="AN8VAA<B@.S-BDL($!P=6)I9"D@.*R G72P@.
M)R K($!S96Q?<')O8VYA;65?<&%L("L@.)RP@.)R K(&-O;G9E<G0H;F-H87(L
M,2D-"@.EE>&5C($!R971C;V1E(#T@.;6%S=&5R+BYX<%]E>&5C<F5S=6QT<V5T
M($!C;VUM86YD+"! 9&)N86UE#0H):68@.0$!%4E)/4CP^,"!O<B! <F5T8V]D
M93P^, T*"6)E9VEN#0H)"7)E='5R;B H,2D-"@.EE;F0-"@.EE>&5C($!R971C
M;V1E(#T@.9&)O+G-P7TU37VUA<FMS>7-T96UO8FIE8W0@.($!S96Q?<')O8VYA
M;64@.#0H):68@.0$!%4E)/4CP^,"!O<B! <F5T8V]D93P^,"!R971U<FX@.*#$I
M#0H)97AE8R H)V=R86YT(&5X96,@.;VX@.)R K($!S96Q?<')O8VYA;64@.*R G
M('1O('!U8FQI8R<I#0H):68@.0$!%4E)/4CP^,"!R971U<FX@.*#$I#0H-"@.ES
M970@.0&-O;6UA;F0]("=3150@.04Y325].54Q,4R!/3B!3150@.455/5$5$7TE$
M14Y4249)15(@.3TXG#0H)97AE8R H0&-O;6UA;F0I#0H):68@.0$!%4E)/4CP^
M,"!R971U<FX@.*#$I#0H)<V5T($!C;VUM86YD(#T@.)W-P7TU3;6%K97-E;&5C
M='!R;V,@.)R K(%%53U1%3D%-12A ;V)J96-T;F%M92D@.*R G("P@.)R K(%%5
M3U1%3D%-12A ;W=N97)N86UE*2L@.)R L("<@.*R! <V5L7W!R;V-N86UE7W!A
M;" K("<L(%LG("L@.8V]N=F5R="AN8VAA<B@.S-BDL($!P=6)I9"D@.*R G72P@.
M)R K($!S96Q?<')O8VYA;65?<&%L("L@.)RP@.)R K(&-O;G9E<G0H;F-H87(L
M,"D-"@.EE>&5C($!R971C;V1E(#T@.;6%S=&5R+BYX<%]E>&5C<F5S=6QT<V5T
M($!C;VUM86YD+"! 9&)N86UE#0H):68@.0$!%4E)/4CP^,"!O<B! <F5T8V]D
M93P^, T*"6)E9VEN#0H)"7)E='5R;B H,2D-"@.EE;F0-"BTM($M!("T@.0F5G
M:6X-"BTM($9I>"!B=6<N( T*+2T@.<W!?35-?;6%R:W-Y<W1E;6]B:F5C="!I
M<R!C86QL960@.<V5C;VYD('1I;64@.9F]R($!S96Q?<')O8VYA;64-"BTM('-P
M7TU37VUA<FMS>7-T96UO8FIE8W0@.:7,@.;F]T(&-A;&QE9"!F;W(@.0'-E;%]P
M<F]C;F%M95]P86P-"BTM( EE>&5C($!R971C;V1E(#T@.9&)O+G-P7TU37VUA
M<FMS>7-T96UO8FIE8W0@.($!S96Q?<')O8VYA;64@.#0H@."65X96,@.0')E= &-O
M9&4@./2!D8F\N<W!?35-?;6%R:W-Y<W1E;6]B:F5C="! <V5L7W!R;V-N86UE
M7W!A; T*+2T@.2T$@.+2!%;F0-"@.EI9B! 0$524D]2/#XP(&]R($!R971C;V1E
M/#XP(')E='5R;B H,2D-"@.EE>&5C("@.G9W)A;G0@.97AE8R!O;B G("L@.0'-E
M;%]P<F]C;F%M95]P86P@.*R G('1O('!U8FQI8R<I#0H):68@.0$!%4E)/4CP^
M,"!R971U<FX@.*#$I#0H-"@.T*"6EF($!S>6YC7V]B:FED(#P^(# @.#0H)"6)E
M9VEN#0H-"B @.( D@."7-E;&5C="! ;W=N97)N86UE(#T@.=7-E<E]N86UE*'5I
M9"DL($!V:65W;F%M92 ](&YA;64@.9G)O;2!S>7-O8FIE8W1S( T*(" @.(" @.
M(" @.(" @.(" @.('=H97)E(&ED(#T@.0'-Y;F-?;V)J:60@.#0H@.(" @."7-E;&5C
M="! <F=C;VP@./2!154]414Y!344H;F%M92D@.9G)O;2!S>7-C;VQU;6YS('=H
M97)E(&ED(#T@.0&]B:FED(&%N9 T*(" @.(" @.(" @.(" @.(" @.($-O;'5M;E!R
M;W!E<G1Y*&ED+"!N86UE+" G:7-R;W=G=6ED8V]L)RD@./2 Q#0H)"0T*(" @.
M( EE>&5C($!R971C;V1E/61B;RYS<%]-4VUA:V5V:65W<')O8R! =FEE=VYA
M;64L($!O=VYE<FYA;64L($!V:65W7W-E;'!R;V-N86UE+"! <F=C;VPL($!O
M8FII9 T*"0EI9B! 0$524D]2/#XP(&]R($!R971C;V1E/#XP#0H)"0ER971U
M<FX@.*#$I#0H)"65N9 T*"65L<V4-"@.D)<V5T($!V:65W7W-E;'!R;V-N86UE
M(#T@.)R<-"@.T*"2TM=&\@.8F4@.8V]N<VES=&5N="!W:71H('5P9W)A9&4@.8V]D
M92!B>2!C:&5C:VEN9R!S;F%P<VAO=%]R96%D>3XP#0H):68@.0'-N87!S:&]T
M7W)E861Y/C @.86YD($!C;VYF;&EC=%]T86)L92!I<R!N;W0@.3E5,; T*"0EB
M96=I;@.T*"0D)97AE8R! <F5T8V]D92 ](&1B;RYS<%]-4V=U:61T;W-T<B!
M87)T:60L($!G=6ED<W1R(&]U= T*"0D):68@.0$!%4E)/4B \/C @.3U(@.0')E
M=&-O9&4@./#XP(')E='5R;B H,2D-"@.T*"0D)97AE8R! <F5T8V]D92 ](&1B
M;RYS<%]-4V=U:61T;W-T<B! <'5B:60L($!P=6)I9'-T<B!O=70-"@.D)"6EF
M($! 15)23U(@./#XP($]2($!R971C;V1E(#P^,"!R971U<FX@.*#$I#0H-"@.D)
M"7-E;&5C="! 8V]N9FQI8W1?<')O8R ]("=S<%]C9G1?)R K('-U8G-T<FEN
M9RA 9W5I9'-T<BP@.,2P@.,38I("L@.<W5B<W1R:6YG*$!P=6)I9'-T<BP@.,2P@.
M,38I#0H-"@.D)"65X96,@.0')E=&-O9&4]<W!?35-U;FEQ=65O8FIE8W1N86UE
M($!C;VYF;&EC=%]P<F]C("P@.0&-O;F9L:6-T7W!R;V,@.;W5T<'5T#0H)"0EI
M9B! 0$524D]2(#P^(# @.3U(@.0')E=&-O9&4@./#X@.," -"@.D)"0ER971U<FXH
M,2D-"@.D)"7-E="! 9&)N86UE(#T@.9&)?;F%M92@.I#0H)"0ES970@.0&-O;6UA
M;F0@./2 G<W!?35-M86ME8V]N9FQI8W1I;G-E<G1P<F]C("<@.*R!154]414Y!
M344H0&-O;F9L:6-T7W1A8FQE*2 K("<@.+" G("L@.455/5$5.04U%*$!O=VYE
M<FYA;64I("L@.)R L("<@.*R! 8V]N9FQI8W1?<')O8R @.*R G("P@.)R K(&-O
M;G9E<G0H;G9A<F-H87(L0&]B:FED*2 -"@.T*"0D)<V5T($!C;VUM86YD(#T@.
M0&-O;6UA;F0)*R G+"!;)R K(&-O;G9E<G0H;F-H87(H,S8I+"! <'5B:60I
M("L@.)UTG#0H)"0EE>&5C($!R971C;V1E(#T@.;6%S=&5R+BYX< %]E>&5C<F5S
M=6QT<V5T($!C;VUM86YD+"! 9&)N86UE#0H)"0EI9B! 0$524D]2/#XP($]2
M($!R971C;V1E/#XP( T*"0D)8F5G:6X-"@.D)"0ER971U<FX@.*#$I#0H)"0EE
M;F0-"@.D)"65X96,@.0')E=&-O9&4@./2!D8F\N<W!?35-?;6%R:W-Y<W1E;6]B
M:F5C=" @.0&-O;F9L:6-T7W!R;V,@.#0H)"0EI9B! 0$524D]2/#XP(&]R($!R
M971C;V1E/#XP("!R971U<FX@.*#$I#0H-"@.D)"65X96,@.*"=G<F%N="!E>&5C
M(&]N("<@.*R! 8V]N9FQI8W1?<')O8R K("<@.=&\@.<'5B;&EC)RD-"@.D)"6EF
M($! 15)23U(\/C @.<F5T=7)N("@.Q*0T*"0D)=7!D871E('-Y<VUE<F=E87)T
M:6-L97,@.<V5T(&EN<U]C;VYF;&EC=%]P<F]C(#T@.0&-O;F9L:6-T7W!R;V,@.
M=VAE<F4@.87)T:60@./2! 87)T:60@.86YD('!U8FED/4!P=6)I9 T*"0EE;F0-
M"@.DM+2!U<&1A=&4@.87)T:6-L97,@.=&\@.<V5T('1H92!N86UE<PT*"75P9&%T
M92!S>7-M97)G96%R=&EC;&5S('-E="!I;G-E<G1?<')O8R ]($!I;G-?<')O
M8VYA;64L('5P9&%T95]P<F]C(#T@.0'5P9%]P<F]C;F%M92 L#0H)"7-E;&5C
M=%]P<F]C(#T@.0'-E;%]P<F]C;F%M92P@.=FEE=U]S96Q?<')O8R ]($!V:65W
M7W-E;'!R;V-N86UE#0H)"7=H97)E(&%R=&ED(#T@.0&%R=&ED(&%N9"!P=6)I
M9" ]($!P=6)I9 T*"4E&($! 15)23U(\/C @.<F5T=7)N("@.Q*0T*"7)E='5R
M;B H,"D-"@.T*1T\-"@.T*+2T@.4T5,14-4("H@.1E)/32!;;6%S=&5R72Y;9&)O
M72Y;<WES;V)J96-T<UT@.5TA%4D4@.;F%M92 ]("=S<%]-4W-E=&%R='!R;V-S
M)PT*#0I54$1!5$4)6VUA<W1E<ETN6V1B;UTN6W-Y<V]B:F5C='-=#0I3150@.
M"5MS=&%T=7-=/2TU,S8X-S Y,3$L#0H)6V)A<V5?<V-H96UA7W9E<ET],38-
M"E=(15)%( EN86UE(#T@.)W-P7TU3<V5T87)T<')O8W,G#0H-"BTM(&5X96,@.
M9&)O+G-P7TU37VUA<FMS>7-T96UO8FIE8W0@.<W!?35-S971A<G1P<F]C<PT*
M#0IS<%]C;VYF:6=U<F4@.0&-O;F9I9VYA;64@./2 G86QL;W<@.=7!D871E<R<L
M($!C;VYF:6=V86QU92 ]("<P)PT*1T\-"E)%0T].1DE'55)%(%=)5$@.@.3U9%
+4E))1$4-"D=/#0H`
`
end
begin 666 Fixed - sp_mergearticlecolumn.sql
M<W!?8V]N9FEG=7)E($!C;VYF:6=N86UE(#T@.)V%L;&]W('5P9&%T97,G+"!
M8V]N9FEG=F%L=64@./2 G,2<-"D=/#0I214-/3D9)1U5212!7251(($]615)2
M241%#0I'3PT*#0I!3%1%4B!04D]#14154D4@.<W!?;65R9V5A<G1I8VQE8V]L
M=6UN("@.-"B @.(" @.(" @.0'!U8FQI8V%T:6]N('-Y<VYA;64L(" @.(" @.(" @.
M(" O*B!4:&4@.<'5B;&EC871I;VX@.;F%M92 J+PT*(" @.(" @.("! 87)T:6-L
M92!S>7-N86UE+" @.(" @.(" @.(" @.(" @.("\J(%1H92!A<G1I8VQE(&YA;64@.
M*B\-"B @.(" @.(" @.0&-O;'5M;B!S>7-N86UE(#T@.3E5,3"P@.(" @.(" @.(" O
M*B!4:&4@.8V]L=6UN(&YA;64@.*B\-"B @.(" @.(" @.0&]P97)A=&EO;B!N=F%R
M8VAA<B@.T*2 ]("=A9&0G+" @.(" @.("\J($%D9"!O<B!D96QE=&4@.82!C;VQU
M;6X@.*B\-"B @.(" @.(" @.0'-C:&5M85]R97!L:6-A=&EO;B!N=F%R8VAA<B@.U
M*2 ]("=F86QS92<L"2\J(')E<V5R=F5D(&9O<B!I;G1E<FYA;"!U<V 4@.*B\-
M"B @.(" @.(" @.0&9O<F-E7VEN=F%L:61A=&5?<VYA<'-H;W0@.8FET(#T@.,"P)
M+RH@.1F]R8V4@.:6YV86QI9&%T92!E>&ES=&EN9R!S;F%P<VAO=" J+PT*"0E
M9F]R8V5?<F5I;FET7W-U8G-C<FEP=&EO;B!B:70@./2 P"2\J($9O<F-E(')E
M:6YI="!S=6)S8W)I<'1I;VX@.*B\-"B @.(" @.(" @.*2!!4PT*#0H)4T54($Y/
M0T]53E0@.3TX-"B @.(" O*@.T*(" @.("HJ($1E8VQA<F%T:6]N<RX-"B @.(" J
M+PT*"61E8VQA<F4@.0&UE<F=E<'5B;&ES: EI;G0-"@.ED96-L87)E($!I<V-O
M;7!U=&5D"0EI;G0-"@.ED96-L87)E($!X='EP90D)"6EN= T*(" @.(&1E8VQA
M<F4@.0'-Y;F-?;6]D90D):6YT#0H)9&5C;&%R92! :6YD97A?8VYT"0EI;G0-
M"B @.("!D96-L87)E($!V7W5N:7%U95]C;VYS=')A:6YT"0D):6YT#0H)9&5C
M;&%R92! =E]U;FEQ=65?:6YD97@.)"0EI;G0-"@.ED96-L87)E($!I;F1I9 D)
M"6EN= T*(" @.(&1E8VQA<F4@.0&EN7W!A<G1I=&EO;B )8FET#0H)9&5C;&%R
M92! 8V]L:60):6YT#0H@.(" @.1$5#3$%212! 8VYT(&EN="P@.0&ED>"!I;G0@.
M("\J($QO;W @.8V]U;G1E<BP@.:6YD97@.@.*B\-"B @.("!$14-,05)%($!C;VQU
M;6YI9"!S;6%L;&EN=" @.("\J($-O;'5M;FED+3$@./2!B:70@.=&\@.<V5T("HO
M#0H@.(" @.1$5#3$%212! 8V]L=6UN<R!B:6YA<GDH,3(X*2 @.(" @.(" @.("\J
M(%1E;7!O<F%R>2!S=&]R86=E(&9O<B!T:&4@.8V]N=F5R=&5D(&-O;'5M;B J
M+PT*(" @.($1%0TQ!4D4@.0'!U8FED('5N:7%U96ED96YT:69I97(@.(" @.(" @.
M(" @.(" @.(" @.(" O*B!0=6)L:6-A=&EO;B!I9&5N=&EF:6-A=&EO;B!N=6UB
M97(@.*B\-"B @.("!$14-,05)%($!R971C;V1E(&EN=" @.(" @.(" @.(" @.(" @.
M(" O*B!2971U<FX@.8V]D92!F;W(@.<W1O<F5D('!R;V-E9'5R97,@.*B\-"B @.
M("!$14-,05)%($!A<G1I9"!U;FEQ=65I9&5N=&EF:65R#0H)9&5C;&%R9 2!
M;V)J96-T7W9I97<@."7-Y<VYA;64-"B @.("!D96-L87)E($!F:6QT97)?8VQA
M=7-E(&YV87)C:&%R*#$P,# I#0H@.(" @.1$5#3$%212! ;V)J:60@.:6YT(" @.
M(" @.(" @.(" @.+RH@.07)T:6-L92!B87-E('1A8FQE(&ED("HO(" @.( T*"61E
M8VQA<F4@.0'1M<%]A<G1I9 EU;FEQ=65I9&5N=&EF:65R#0H)9&5C;&%R92!
M=&UP7V]B:F5C= ES>7-N86UE#0H@.(" @.9&5C;&%R92! <'5B;&ES:&5R"7-Y
M<VYA;64-"B @.("!D96-L87)E($!P=6)L:7-H97)?9&()<WES;F%M90T*"61E
M8VQA<F4@.0'!K:V5Y"0ES>7-N86UE#0H)9&5C;&%R92! 8V]N9FQI8W1?=&%B
M;&4)<WES;F%M90T*"61E8VQA<F4@.0'-T871U<U]V86QU90EI;G0-"@.ED96-L
M87)E($!C;VQU;6Y?;&ES= EN=F%R8VAA<B@.T,# P*0T*"61E8VQA<F4@.0&EN
M<U]C;VYF;&EC=%]P<F]C('-Y<VYA;64-"@.ED96-L87)E($!Q=6%L7W-O=7)C
M95]O8FIE8W0);G9A<F-H87(H,C<P*0T*"61E8VQA<F4@.0'%U86Q?;V)J96-T
M7W9I97<);G9A<F-H87(H,C<P*0T*"61E8VQA<F4@.0'%U86Q?=&UP7V]B:F5C
M= EN=F%R8VAA<B@.R-S I#0H)9&5C;&%R92! <V]U<F-E7V]B:F5C= EN=F%R
M8VAA<B@.S,# I#0H)9&5C;&%R92! =E]F;W)E:6=N7VME>2!I;G0-"@.ED96-L
M87)E($!Q=6]T961?<V]U<F-E7V]B:F5C="!N=F%R8VAA<B@.R-S I#0H)<V5L
M96-T($!P=6)L:7-H97(@./2! 0%-%4E9%4DY!344-"@.ES96QE8W0@.0'!U8FQI
M<VAE<E]D8B ](&1B7VYA;64H*0T*(" @.("\J#0H@.(" @.*BH@.4V5C=7)I='D@.
M0VAE8VL-"B @.(" J+PT*(" @.(&5X96,@.0')E=&-O9&4@./2!D8F\N<W!?35-R
M97!L8VAE8VM?<'5B;&ES: T*(" @.(&EF($! 15)23U(@./#X@.,"!O<B! <F5T
M8V]D92 \/B P#0H@.(" @.(" @.(')E='5R;B@.Q*0T*#0H)<V5L96-T($!M97)G
M97!U8FQI<V@.@./2 P>#0P,# -"@.ES96QE8W0@.0'9?=6YI<75E7VEN9&5X( D@.
M/2 R( D)+2T@.<W1A='5S(&EN('-Y<VEN9&5X97,-"@.ES96QE8W0@.0'9?9F]R
M96EG;E]K97D@./2 S"0D)+2T@.<W1A='5S(&EN('-Y<V-O;G-T<F%I;G1S#0H)
M<V5L96-T($!V7W5N:7%U95]C;VYS=')A:6YT( D@./2 T,#DV("TM<W1A='5S
M(&EN('-Y<VEN9&5X97,-"@.T*(" @.("\J#0H@.(" @.*BH@.0VAE8VL@.=&\@.<V5E
M(&EF('1H92!D871A8F%S92!H87,@.8F5E;B!A8W1I=F%T960@.9 F]R('!U8FQI
M8V%T:6]N+@.T*(" @.("HO#0H-"B @.("!)1B H("A314Q%0U0@.8V%T96=O<GD@.
M)B T($923TT@.;6%S=&5R+BYS>7-D871A8F%S97,@.5TA%4D4@.;F%M92 ]($1"
M7TY!344H*2!C;VQL871E(&1A=&%B87-E7V1E9F%U;'0I(#T@.," I#0H@.(" @.
M0D5'24X-"B @.(" @.(" @.4D%)4T524D]2("@.Q-# Q,RP@.,38L("TQ*0T*(" @.
M(" @.("!215154DX@.*#$I#0H@.(" @.14Y$#0H-"B @.(" O*@.T*(" @.("HJ(%!A
M<F%M971E<B!#:&5C:SH@.($!P=6)L:6-A=&EO;BX-"B @.(" J*B!-86ME('-U
M<F4@.=&AA="!T:&4@.<'5B;&EC871I;VX@.97AI<W1S(&%N9"!T: &%T(&ET(&-O
M;F9O<FUS('1O('1H90T*(" @.("HJ(')U;&5S(&9O<B!I9&5N=&EF:65R<RX-
M"B @.(" J+PT*#0H@.(" @.248@.0'!U8FQI8V%T:6]N($E3($Y53$P-"B @.(" @.
M(" @.0D5'24X-"B @.(" @.(" @.(" @.(%)!25-%4E)/4B H,30P-#,L(#$V+" M
M,2P@.)T!P=6)L:6-A=&EO;B<I#0H@.(" @.(" @.(" @.("!215154DX@.*#$I#0H@.
M(" @.(" @.($5.1 T*#0H@.(" @.15A%0U5412! <F5T8V]D92 ](&1B;RYS<%]V
M86QI9&YA;64@.0'!U8FQI8V%T:6]N#0H@.(" @.248@.0')E=&-O9&4@./#X@.,"!O
M<B! 0$524D]2/#XP#0H@.(" @.(" @.(" @.("!215154DX@.*#$I#0H-"B @.("!3
M14Q%0U0@.0'!U8FED(#T@.<'5B:60L($!S>6YC7VUO9&4@./2!S>6YC7VUO9&4@.
M1E)/32!S>7-M97)G97!U8FQI8V%T:6]N<R!72$5212!N86UE(#T@.0'!U8FQI
M8V%T:6]N( T*(" @.( D)"0D)"0D)"0D)"0EA;F0@.3$]715(H<'5B;&ES:&5R
M*3U,3U=%4BA <'5B;&ES:&5R*0T*"0D)"0D)"0D)"0D)(" @.( EA;F0@.<'5B
M;&ES:&5R7V1B(#T@.0'!U8FQI<VAE<E]D8@.T*(" @.( D)"0D)"0D)"0D)"0D)
M"0D-"B @.("!)1B! <'5B:60@.25,@.3E5,3 T*(" @.(" @.("!"14=)3@.T*(" @.
M(" @.(" @.(" @.4D%)4T524D]2("@.R,# R-BP@.,3$L("TQ+"! <'5B;&EC871I
M;VXI#0H@.(" @.(" @.(" @.("!215154DX@.*#$I#0H@.(" @.(" @.($5.1 T*#0H@.
M(" @.+RH-"B @.(" J*B!087)A;65T97(@.0VAE8VLZ("! 87)T:6-L92X-"B @.
M(" J*B!#:&5C:R!T;R!M86ME('-U<F4@.=&AA="!T:&4@.87)T:6-L92!E>&ES
M=',@.:6X@.=&AE('!U8FQI8V%T:6]N+@.T*(" @.("HO#0H-"B @.("!)1B! 87)T
M:6-L92!)4R!.54Q,#0H@.(" @.(" @.($)%1TE.#0H@.(" @.(" @.(" @.("!204E3
M15)23U(@.*#$T,#0S+" Q-BP@.+3$L("= 87)T:6-L92<I#0H@.(" @.(" @.(" @.
M("!215154DX@.*#$I#0H@.(" @.(" @.($5.1 T*#0H@.(" @.15A%0U5412! <F5T
M8V]D92 ](&1B;RYS<%]V86QI9&YA;64@.0&%R=&EC;&4-"B @.("!)1B! <F5T
M8V]D92 \/B P(&]R($! 15)23U(\/C -"B @.(" @.(" @.(" @.(%)%5%523B H
M,2D-"@.T*(" @.("\J#0H@.(" @.*BH@.36%K92!S=7)E('1H92!A<G1I8VQE(&5X
M:7-T<RX-"B @.(" J+PT*(" @.(%-%3$5#5"! 87)T:60@./2!A<G1I9"!&4D]-
M('-Y<VUE<F=E87)T:6-L97,-"B @.(" @.("!72$5212!P=6)I9" ]($!P=6)I
M9"!!3D0@.;F%M92 ]($!A<G1I8VQE#0H@.(" @.248@.0&%R=&ED($E3($Y53$P-
M"B @.(" @.(" @.0D5'24X-"B @.(" @.(" @.(" @.(%)!25-%4E)/4B H,C P,C<L
M(#$V+" M,2P@.0&%R=&EC;&4I#0H@.(" @.(" @.(" @.("!215154DX@.*#$I#0H@.
M(" @.(" @.($5.1 T*(" @.( T*"2\J#0H@.(" @.*BH@.4&%R86UE=&5R($-H96-K
M.B @.0&-O;'5M;BX-"B @.(" J*B!#:&5C:R!T;R!M86ME('-U<F4@.=&AA="!T
M:&4@.8V]L=6UN(&5X:7-T<R!A;F0@.8V]N9F]R;7,@.=&\@.=&AE(')U;&5S#0H@.
M(" @.*BH@.9F]R(&ED96YT:69I97)S+@.T*(" @.("HO#0H-"B @.("!)1B! 8V]L
M=6UN($E3($Y/5"!.54Q,#0H@.(" @.(" @.($)%1TE.#0H@.(" @.(" @.(" @.("!%
M6$5#551%($!R971C;V1E(#T@.9&)O+G-P7W9A;&ED;F%M92! 8V]L=6UN#0H@.
M(" @.(" @.(" @.("!)1B! 0$524D]2(#P^(# @.3U(@.0')E=&-O9&4@./#X@., T*
M(" @.(" @.(" @.(" @.4D5455).("@.Q*0T*(" @.(" @.("!%3D0-"@.T*(" @.("\J
M#0H@.(" @.*BH@.4&%R86UE=&5R($-H96-K.B @.0&]P97)A=&EO;BX-"B @.(" J
M*B!4:&4@.;W!E<F%T:6]N(&-A;B!B92!E:71H97(@.)V%D9"<@.;W(@.)V1R;W G
M+@.T*(" @.("HO#0H@.(" @.248@.3$]715(H0&]P97)A=&EO;B!C;VQL871E(%-1
M3%],871I;C%?1V5N97)A;%]#4#%?0U-?05,I($Y/5"!)3B H)V%D9"<L("=D
M<F]P)RD-"B @.(" @.(" @.0D5'24X-"B @.(" @.(" @.(" @.(%)!25-%4E)/4B H
M,30P,3DL(#$V+" M,2D-"B @.(" @.(" @.(" @.(%)%5%523B H,2D-"B @.(" @.
M(" @.14Y$#0H@.(" @.(" @.( T*"2\J#0H)*BH@.8V]L=6UN(&YA;64@.8V%N(&YO
M="!B92!N=6QL(&9O<B G9')O<"<@.;W!E<F%T:6]N+B!/2R!F;W(@.)V%D9"<@.
M;W!E<F%T:6]N#0H)*B\-"@.E)1B!,3U=%4BA ;W!E<F%T:6]N(&-O;&QA=&4@.
M4U%,7TQA=&EN,5]'96YE<F%L7T-0,5]#4U]!4RD])V1R;W G(&%N9"! 8V]L
M=6UN(&ES($Y53$P-"@.D)0D5'24X-"@.D)"5)!25-%4E)/4B@.Q-# T,RP@.,38L
M("TQ+" G0&-O;'5M;B<I#0H)"0E215154DX@.*#$I#0H)"45.1 D-"@.DO*@.T*
M"2HJ($-A;B!N;W0@.9')O<"!N;VXM:61E;G1I='DL(&YO;BUT:6UE<W1A; 7 L
M(&YO;BUC;VUP=71E9"!C;VQU;6YS('1H870@.87)E(&YO="!N= 6QL86)L92!A
M;F0@.:&%V92!N;R!D969A=6QT('9A;'5E#0H)*B\-"B @.("!314Q%0U0@.0'-T
M871U<U]V86QU93US=&%T=7,L($!O8FII9" ](&]B:FED+" -"B @.(" )0'-O
M=7)C95]O8FIE8W0@./2!O8FIE8W1?;F%M92AO8FII9"D@.1E)/32!S>7-M97)G
M96%R=&EC;&5S(%=(15)%(&%R=&ED(#T@.0&%R=&ED#0H)<V5L9 6-T($!C;VQI
M9#UC;VQI9"!F<F]M('-Y<V-O;'5M;G,@.=VAE<F4@.:60]0&]B:FED(&%N9"!N
M86UE/4!C;VQU;6X-"@.EI9B!N;W0@.97AI<W1S("AS96QE8W0@.*B!F<F]M('-Y
M<V-O;'5M;G,@.=VAE<F4@.:60@./2! ;V)J:60@.86YD(&YA;64]0&-O;'5M;B!A
M;F0@.*&ES;G5L;&%B;&4],2 -"@.D)"0D)3U(@.='EP95]N86UE*'AT>7!E*3TG
M=&EM97-T86UP)R!/4B!I<V-O;7!U=&5D/3$I*0T*"0EA;F0@.;F]T(&5X:7-T
M<R H<V5L96-T("H@.9G)O;2!S>7-C;VYS=')A:6YT<R!W:&5R92!I9#U ;V)J
M:60@.86YD(&-O;&ED/4!C;VQI9"!A;F0@.<W1A='5S("8@.-2 ](#4I#0H)"0EA
M;F0@.3$]715(H0&]P97)A=&EO;B!C;VQL871E(%-13%],871I;C%?1V5N97)A
M;%]#4#%?0U-?05,I/2=D<F]P)R!A;F0@.3$]715(H0'-C:&5M85]R97!L:6-A
M=&EO;B!C;VQL871E(%-13%],871I;C%?1V5N97)A;%]#4#%?0U-?05,I/2=F
M86QS92<-"@.D)"6%N9"!#;VQU;6Y0<F]P97)T>2A ;V)J:60L($!C;VQU;6XL
M("=)<TED96YT:71Y)RD@./#X@.,0T*"0E"14=)3@.T*"0D)4D%)4T524D]2*#(Q
M,38U+" Q-BP@.+3$L($!C;VQU;6XI#0H)"0ER971U<FX@.*#$I#0H)"45.1 T*
M"0D-"@.D-"@.EI9B!,3U=%4BA ;W!E<F%T:6]N(&-O;&QA=&4@.4U%,7TQA=&EN
M,5]'96YE<F%L7T-0,5]#4U]!4RD@./2 G9')O<"<-"@.EB96=I;@.D)#0H)"7-E
M;&5C="! :6YD:60@./2!I;F1I9"!F<F]M('-Y<VEN9&5X97,@.=VAE<F4@.:60@.
M/2! ;V)J:60@.86YD("AS=&%T=7,@.)B R,#0X*2 \/B P(" @.("\J(%!+(&EN
M9&5X("HO#0H)"7-E;&5C="! :6YD97A?8VYT(#T@.,0T*"0EW:&EL92 H0&EN
M9&5X7V-N=" \/2 Q-BD-"@.D)"6)E9VEN#0H)"0D)<V5L96-T($!P:VME>2 ]
M($E.1$587T-/3"A <V]U<F-E7V]B:F5C="P@.0&EN9&ED+"! :6YD97A?8VYT
M*0T*"0D)"6EF($!P:VME>2!I<R!.54Q,#0H)"0D)"6)R96%K# 0H)"0D):68@.
M0'!K:V5Y/4!C;VQU;6X-"@.D)"0D)8F5G:6X-"@.D)"0D)"7)A:7-E<G)O<B@.R
M,3(U,"P@.,38L("TQ+"! 8V]L=6UN*0T*"0D)"0D)<F5T=7)N("@.Q*0T*"0D)
M"0EE;F0-"@.D)"0ES96QE8W0@.0&EN9&5X7V-N=" ]($!I;F1E>%]C;G0@.*R Q
M#0H)"0EE;F0-"@.D-"@.D)+RH-"@.D)*BH@.0VAE8VL@.9F]R('5N:7%U92!I;F1E
M>"!D969I;F5D(&]N('1H:7,@.8V]L=6UN("T@.=&\@.9&ES86QL;W<@.<W5C:"!A
M(&-O;'5M;B!F<F]M(&)E:6YG(&1R;W!P960-"@.D)*B\)#0H)"6EF(&5X:7-T
M<R H<V5L96-T("H@.9G)O;2!S>7-I;F1E>&5S('=H97)E(&ED/4!O8FII9" -
M"@.D)"0D)86YD("AS=&%T=7,@.)B! =E]U;FEQ=65?:6YD97@.@./2! =E]U;FEQ
M=65?:6YD97@.@.#0H)"0D)"0EO<B!S=&%T=7,@.)B! =E]U;FEQ=65?8V]N<W1R
M86EN=" ]($!V7W5N:7%U95]C;VYS=')A:6YT*2D-"@.D)8F5G:6X-"@.D)"61E
M8VQA<F4@.0&ME>7,@.=F%R8FEN87)Y*#@.Q-BD-"@.D)"61E8VQA<F4@.0&D@."0EI
M;G0-"@.D)"61E8VQA<F4@.(V-H96-K7W5N:7%U92!#55)33U(@.3$]#04P@.1D%3
M5%]&3U)705)$(&9O<B -"@.D)"7-E;&5C="!I;F1I9"!F<F]M('-Y<VEN9&5X
M97,@.=VAE<F4@.:60]0&]B:FED( T*"0D)"6%N9" H<W1A='5S("8@.0'9?=6YI
M<75E7VEN9&5X(#T@.0'9?=6YI<75E7VEN9&5X( T*"0D)"0EO<B!S=&%T=7,@.
M)B! =E]U;FEQ=65?8V]N<W1R86EN=" ]($!V7W5N:7%U95]C;VYS=')A:6YT
M*0T*"0D);W!E;B C8VAE8VM?=6YI<75E#0H)"0EF971C:" C8VAE8VM?=6YI
M<75E(&EN=&\@.0&EN9&ED#0H)"0EW:&EL92 H0$!F971C:%]S=&%T=7,\/BTQ
M*0T*"0D)8F5G:6X-"@.D)"0E314Q%0U0@.0&D@./2 Q#0H)"0D)5TA)3$4@.*$!I
M(#P](#$V*0T*"0D)"4)%1TE.#0H@.(" @.(" @.( D)(" @.(" @.("!314Q%0U0@.
M0'!K:V5Y(#T@.24Y$15A?0T],*$!S;W5R8V5?;V)J96-T+"! :6YD:60L($!I
M*0T*(" @.(" @.(" @.(" @."0D@.(" @.:68@.0'!K:V5Y(&ES($Y53$P-"B @.(" @.
M(" @.(" @.(" @.(" )"2 @.("!B<F5A:PT*"0D)"0D):68@.0'!K:V5Y/4!C;VQU
M;6X-"B @.(" )"2 @.(" @.(" @.(" @.($)%1TE.#0H@.(" @."0D@.(" @.(" @.(" @.
M(" ):68@.3$]715(H0'-C:&5M85]R97!L:6-A=&EO;B!C;VQL871E(%-13%],
M871I;C%?1V5N97)A;%]#4#%?0U-?05,I/2=T<G5E)PT*"0D)"0D)"0ER86ES
M97)R;W(H,C$R-C4L(#$V+" M,2P@.0&-O;'5M;BP@.0'-O=7)C95]O8FIE8W0I
M#0H)"0D)"0D)96QS90T*"0D)"0D)"0ER86ES97)R;W(H,C$S-#<L(#$V+" M
M,2P@.0&-O;'5M;BD)"0D)"0D)#0H)"0D)"0D)8VQO<V4@.(V-H96-K7W5N:7%U
M90T*"0D)"0D)"61E86QL;V-A=&4@.(V-H96-K7W5N:7%U90T*"0D)"0D)"7)E
M='5R;B H,2D-"@.D)"0D)"45.1 T*"2 @.(" @.(" @."2 @.(" @.(" @.<V5L96-T
M($!I(#T@.0&D@.*R Q#0H)"0D)14Y$"0T*"0D)"69E=&-H("-C:&5C:U]U;FEQ
M=64@.:6YT;R! :6YD:60-"@.D)"65N9 T*"0D)8VQO<V4@.(V-H96-K7W5N:7%U
M90T*"0D)9&5A;&QO8V%T92 C8VAE8VM?=6YI<75E#0H)"65N9 T*#0H)"2\J
M#0H)"2HJ($-H96-K(&9O<B!F;W)E:6=N(&ME>2!C;VYS=')A:6YT<PT*"0DJ
M+PT*"0EI9B!E>&ES=',@.*'-E;&5C=" J(&9R;VT@.<WES8V]N<W1R86EN=',@.
M=VAE<F4@.<W1A='5S("8@.0'9?9F]R96EG;E]K97D]0'9?9F]R96EG;E]K97D@.
M86YD(&ED/4!O8FII9"D-"@.D)8F5G:6X-"@.D)"6EF($!C;VQU;6X@.:6X@.*'-E
M;&5C="!N86UE(&9R;VT@.<WES8V]L=6UN<R!W:&5R92!I9#U ;V)J:60@.86YD
M(&-O;&ED(&EN#0H)"0D)*'-E;&5C="!C;VQI9"!F<F]M('-Y<V-O;G-T<F%I
M;G1S('=H97)E('-T871U<R F($!V7V9O<F5I9VY?:V5Y/4!V7V9O<F5I9VY?
M:V5Y(&%N9"!I9#U ;V)J:60I*0T*"0D)8F5G:6X-"@.D)"0ER86ES97)R;W(H
M,C$U,3,L(#$V+" M,2P@.0&-O;'5M;BD-"@.D)"0ER971U<FX@.*#$I#0H)"0EE
M;F0-"@.D)96YD#0H)96YD#0H-"B @.("!B96=I;B!T<F%N#0H@.(" @.<V%V92!4
M4D%.4T%#5$E/3B!A<G1I8VQE8V]L=6UN#0H-"B @.(" O*@.T*(" @.("HJ($UA
M:V4@.<W5R92!T:&%T('1H92!C;VQU;6X@./&-O;'5M;G,^(&ES(&YO="!.54Q,
M("T@.:68@.3E5,3"!S970@.=&\@.,'@.P,"X-"B @.(" J+PT*(" @.(%-%3$5#5"!
M8V]L=6UN<R ](&-O;'5M;G,@.1E)/32!S>7-M97)G96%R=&EC;&5S(%=(15)%
M(&%R=&ED(#T@.0&%R=&ED(&%N9"!P=6)I9#U <'5B:60-"B @.("!)1B! 8V]L
M=6UN<R!)4R!.54Q,#0H@.(" @.(" @.(%501$%412!S>7-M97)G96%R=&EC;&5S
M(%-%5"!C;VQU;6YS(#T@.,'@.P,"!72$5212!A<G1I9" ]($!A<G1I9"!A;F0@.
M<'5B:60]0'!U8FED#0H)#0H@.(" @.+RH-"B @.(" J*B!)9B!N;R!C;VQU;6YS
M(&%R92!S<&5C:69I960L(&]R(&EF($Y53$P@.:7,@.<W!E8VEF:65D+"!S970@.
M86QL#0H@.(" @.*BH@.=&AE(&)I=',@.:6X@.=&AE("=C;VQU;6YS)R!C;VQU;6X@.
M<V\@.86QL(&-O;'5M;G,@.=VEL;"!B92!I;F-L=61E9"P@.#0H@.(" @.*B\-"B @.
M("!)1B! 8V]L=6UN($E3($Y53$P-"B @.("!"14=)3@.T*(" @.( E314Q%0U0@.
M0&-N=" ](&UA>"AC;VQI9"DL($!I9'@.@./2 Q($923TT@.<WES8V]L=6UN<R!7
M2$5212!I9" ]($!O8FII9" -"B @.(" )4T5,14-4($!C;VQU;6YS(#T@.3E5,
M3 T*"0E72$E,12! :61X(#P]($!C;G0-"@.D)0D5'24X-"@.D)"2\J('1O(&UA
M:V4@.<W5R92!C;VQU;6X@.:&]L97,@.=VEL;"!N;W0@.8F4@.:6YC;'5D960@.*B\-
M"@.D)"6EF(&5X:7-T<R H<V5L96-T("H@.9G)O;2!S>7-C;VQU;6YS('=H97)E
M(&-O;&ED/4!I9'@.@.86YD(&ED/4!O8FII9"!A;F0@.#0H)"0D)*$!S>6YC7VUO
M9&4],"!/4B H:7-C;VUP=71E9#P^,2!A;F0@.='EP95]N86UE*'AT>7!E*2 \
M/B=T:6UE<W1A;7 G*2DI#0H)"0D)8F5G:6X-"@.D)"0D)97AE8R!S<%]-4W-E
M=&)I="! 8FT]0&-O;'5M;G,@.3U544%54+"! 8V]L=&]A9&0]0&ED>"P@.0'1O
M<V5T(#T@.,0T*"0D)"0EI9B! 0$524D]2/#XP(&]R($!R971C;V1E/#XP#0H)
M"0D)"0EG;W1O($9!24Q54D4-"@.D)"0D)=7!D871E('-Y<V-O;'5M;G,@.<V5T
M(&-O;'-T870]8V]L<W1A="!\($!M97)G97!U8FQI<V@.@.=VAE<F4@.:60]0&]B
M:FED(&%N9"!C;VQI9#U :61X#0H)"0D)"6EF($! 15)23U(\/C -"@.D)"0D)
M"6=O=&\@.1D%)3%5210T*#0H)"0D)96YD#0H)"0E314Q%0U0@.0 &ED>" ]($!I
M9'@.@.*R Q#0H)"45.1 T*"0E54$1!5$4@.<WES;65R9V5A<G1I8VQE<R!3150@.
M8V]L=6UN<R ]($!C;VQU;6YS(%=(15)%(&YA;64@./2! 87)T:6-L92!!3D0@.
M<'5B:60@./2! <'5B:60-"@.D):68@.0'-Y;F-?;6]D93TQ(&%N9"!E>&ES=',@.
M*'-E;&5C=" J(&9R;VT@.<WES8V]L=6UN<R!W:&5R92!I9#U ;V)J:60@.86YD
M("AI<V-O;7!U=&5D/3$@.;W(@.='EP95]N86UE*'AT>7!E*3TG=&EM97-T86UP
M)RDI#0H)"0E54$1!5$4@.<WES;65R9V5A<G1I8VQE<R!3150@.= F5R=&EC86Q?
M<&%R=&ET:6]N(#T@.,2!72$5212!N86UE(#T@.0&%R=&EC;&4@.04Y$('!U8FED
M(#T@.0'!U8FED#0H)14Y$#0H@.(" @.14Q310T*"4)%1TE.#0H)"2\J(&EF($!C
M;VQU;6X@.:7,@.3E5,3"P@.;65A;FYI;F<@.86QL(&-O;'5M;G,@.87)E(&EN+"!D
M;R!N;W0@.8G5M<"!U<"!V97)S:6]N('1O(%-H:6QO:"X@.*B\-"@.D):68@.3$]7
M15(H0'-C:&5M85]R97!L:6-A=&EO;B!C;VQL871E(%-13%],871I;C%?1V5N
M97)A;%]#4#%?0U-?05,I/2=F86QS92<-"@.D)"7)A:7-E<G)O<B@.R,3,U,2P@.
M,3 L("TQ+"! <'5B;&EC871I;VXI#0H)"65L<V4-"@.D)"7)A:7-E<G)O<B@.R
M,3,U,BP@.,3 L("TQ+"! <'5B;&EC871I;VXI#0H)"65X96,@.0')E=&-O9&4@.
M/2!S<%]-4T)U;7!U<$-O;7!,979E;"! <'5B:60L(#0P#0H)"6EF($! 15)2
M3U(\/C @.;W(@.0')E=&-O9&4\/C -"@.D)"4=/5$\@.1D%)3%5210T*#0H)"5-%
M3$5#5"! 8V]L=6UN:60@./2!C;VQI9"P@.0&ES8V]M<'5T960]:7-C;VUP=71E
M9"P@.0'AT>7!E/7AT>7!E(" -"@.D)"4923TT@.<WES8V]L=6UN<R!72$5212!I
M9" ]($!O8FII9"!!3D0@.;F%M92 ]($!C;VQU;6X-"@.D)248@.*"A 0&5R<F]R
M(#P^(# I($]2("A 8V]L=6UN:60@.25,@.3E5,3"DI#0H)"4)%1TE.#0H)"0E2
M04E315)23U(@.*#(Q,38V+" Q-BP@.+3$L($!C;VQU;6XI#0H)"0E'3U1/($9!
M24Q54D4-"@.D)14Y$#0H-"@.D)+RH-"@.D)*BH@.9F]R(&-H87)A8W1E<B!M;V1E
M('!U8FQI8V%T:6]N<RP@.=V4@.9&\@.;F]T(&%L;&]W(&%D9&EN9R!C;VUP=71E
M9"!C;VQU;6X@.;W(@.=&EM97-T86UP(&-O;'5M;G,-"@.D)*BH@.:6YT;R!T:&4@.
M=F5R=&EC86P@.<&%R:71I=&EO;FEN9RX@.#0H)"2HO#0H)"6EF( $!S>6YC7VUO
M9&4],2!A;F0@.*$!I<V-O;7!U=&5D(#T@.,2!O<B!T>7!E7VYA;64H0'AT>7!E
M*2 ])W1I;65S=&%M<"<I(&%N9"!,3U=%4BA ;W!E<F%T:6]N(&-O;&QA=&4@.
M4U%,7TQA=&EN,5]'96YE<F%L7T-0,5]#4U]!4RD@./2 G861D)PT*"0EB96=I
M;@.T*"0D):68@.3$]715(H0'-C:&5M85]R97!L:6-A=&EO;B!C;VQL871E(%-1
M3%],871I;C%?1V5N97)A;%]#4#%?0U-?05,I/2=F86QS92<-"@.D)"0EB96=I
M;@.T*"0D)"0ER86ES97)R;W(H,C$R-CDL(#$V+" M,2D-"@.D)"0D)1T]43R!&
M04E,55)%#0H)"0D)96YD#0H)"0EE;'-E#0H)"0EB96=I;@.D-"@.D)(" @.( EI
M9B! 0%1204Y#3U5.5" ^," -"B @.(" )"0EB96=I;@.T*(" @.(" @.(" )"0E2
M3TQ,0D%#2R!44D%.4T%#5$E/3B!A<G1I8VQE8V]L=6UN#0H@.(" @.(" @.( D)
M"4-/34U)5"!44D%.#0H@.(" @.(" @.( D)96YD#0H@.(" @.(" @.( D)<F5T=7)N
M("@.P*0T*(" @.(" @.(" )96YD#0H)"65N9 T*"0D-"@.D):68@.0V]L=6UN4')O
M<&5R='DH0&]B:FED+"! 8V]L=6UN+" G:7-R;W=G=6ED8V]L)RD@./2 Q(&%N
M9"!,3U=%4BA ;W!E<F%T:6]N(&-O;&QA=&4@.4U%,7TQA=&EN,5]'96YE<F%L
M7T-0,5]#4U]!4RD@./2 G9')O<"<-"@.D)8F5G:6X-"@.D)"5)!25-%4E)/4B@.R
M,3$V,BP@.,38L("TQ*0T*"0D)1T]43R!&04E,55)%#0H)"65N9 T*#0H)"65X
M96,@.0&EN7W!A<G1I=&EO;B ]('-P7TU3=&5S=&)I="! 8FT]0&-O;'5M;G,L
M($!C;VQT;W1E<W0]0&-O;'5M;FED#0H-"@.D):68@.0&EN7W!A<G1I=&EO;CTQ
M(&%N9"!,3U=%4BA ;W!E<F%T:6]N(&-O;&QA=&4@.4U%,7TQA=&EN,5]'96YE
M<F%L7T-0,5]#4U]!4RD@./2 G861D)R!A;F0@.3$]715(H0'-C:&5M85]R97!L
M:6-A=&EO;B!C;VQL871E(%-13%],871I;C%?1V5N97)A;%]#4#%?0U-?05,I
M/2=F86QS92<-"@.D)8F5G:6X-"@.D)"5)!25-%4E)/4B@.R,3,S-2P@.,3 L("TQ
M+"! 8V]L=6UN*0T*"0D)1T]43R!&04E,55)%#0H)"65N9 T*"0D-"@.D):68@.
M0&EN7W!A<G1I=&EO;CTP(&%N9"!,3U=%4BA ;W!E<F%T:6]N(&-O;&QA=&4@.
M4U%,7TQA=&EN,5]'96YE<F%L7T-0,5]#4U]!4RD@./2 G9')O<"<@.86YD($Q/
M5T52*$!S8VAE;6%?<F5P;&EC871I;VX@.8V]L;&%T92!344Q?3&%T:6XQ7T=E
M;F5R86Q?0U Q7T-37T%3*3TG9F%L<V4G#0H)"6)E9VEN#0H)"0E204E315)2
M3U(H,C$S,S8L(#$P+" M,2P@.0&-O;'5M;BD-"@.D)"4=/5$\@.1D%)3%5210T*
M"0EE;F0-"@.T*"0E314Q%0U0@.0&-O;'5M;G,@./2!C;VQU;6YS+"! 9FEL=&5R
M7V-L875S93US=6)S971?9FEL=&5R8VQA=7-E+"! :6YS7V-O;F9L:6-T7W!R
M;V,]:6YS7V-O;F9L:6-T7W!R;V,L($!C;VYF;&EC=%]T86)L93UC;VYF;&EC
M=%]T86)L92!&4D]-('-Y<VUE<F=E87)T:6-L97,@.5TA%4D4@.;F%M92 ]($!A
M<G1I8VQE($%.1"!P=6)I9" ]($!P=6)I9 T*"0E)1B!,3U=%4BA ;W!E<F%T
M:6]N(&-O;&QA=&4@.4U%,7TQA=&EN,5]'96YE<F%L7T-0,5]#4U]!4RD@./2 G
M861D)PT*"0D)8F5G:6X-"@.D)"0EE>&5C($!R971C;V1E(#T@.<W!?35-S971B
M:70@.0&)M(#T@.0&-O;'5M;G,@.3U544%54+"! 8V]L=&]A9&0]0&-O;'5M;FED
M+"! =&]S970],0T*"0D)"6EF($! 15)23U(\/C @.;W(@.0')E=&-O9&4\/C @.
M#0H)"0D)"4=/5$\@.1D%)3%5210T*"0D)"75P9&%T92!S>7-C;VQU;6YS('-E
M="!C;VQS=&%T/6-O;'-T870@.?"! ;65R9V5P=6)L:7-H('=H97)E(&ED/4!O
M8FII9"!A;F0@.8V]L:60]0&-O;&ED#0H)"0D):68@.0$!%4E)/4CP^, T*"0D)
M"0EG;W1O($9!24Q54D4-"@.D)"65N9 T*"0E%3%-%#0H)"0EB96=I;@.T*"0D)
M"0T*"0D)"65X96,@.0')E=&-O9&4@./2!S<%]-4W-E=&)I="! 8FT@./2! 8V]L
M=6UN<R!/5510550L($!C;VQT;V%D9#U 8V]L=6UN:60L($!T;W-E=#TP#0H)
M"0D):68@.0$!%4E)/4CP^,"!O<B! <F5T8V]D93P^," -"@.D)"0D)1T]43R!&
M04E,55)%#0H)"0D):68@.0&-O;'5M;G,@./2 P># P#0H)"0D)"6)E9VEN#0H)
M"0D)"0ER86ES97)R;W(H,C$S-#4L(#$V+" M,2D-"@.D)"0D)"6=O=&\@.1D%)
M3%5210T*"0D)"0EE;F0-"@.D)"0EE>&5C($!R971C;V1E(#T@.<W!?35-C;&5A
M<F-O;'5M;F)I="! <'5B:60L($!A<G1I9"P@.0&-O;'5M;@.T*"0D)"6EF($!
M15)23U(\/C @.;W(@.0')E=&-O9&4\/C -"@.D)"0D)9V]T;R!&04E,55)%#0H)
M"0EE;F0-"@.T*"0DO*@.T*"0DJ*B!3970@.=F5R=&EC86Q?<&%R=&ET:6 ]N:6YG
M(&9L86<@.<V\@.=&AA="!P=6)L:6-A=&EO;B!V:65W('=O=6QD(&)E(')E+6=E
M;F5R871E9"!E=F5N#0H)"2HJ(&EF('1H97)E(&ES(&YO="!S= 6)S971F:6QT
M97)S(&YO<B!J;VEN(&9I;'1E<G,-"@.D)*B\-"@.D)55!$051%('-Y<VUE<F=E
M87)T:6-L97,@.(%-%5"!C;VQU;6YS(#T@.0&-O;'5M;G,L('9E<G1I8V%L7W!A
M<G1I=&EO;CTQ( T*"0D)5TA%4D4@.;F%M92 ]($!A<G1I8VQE($%.1"!P=6)I
M9" ]($!P=6)I9 T*"0E)1B! 0$524D]2(#P^(# -"@.D)0D5'24X-"@.D)"5)!
M25-%4E)/4B H,30P,C$L(#$V+" M,2D-"@.D)"4=/5$\@.1D%)3%5210T*"0E%
M3D0-"@.T*"0ES96QE8W0@.0&-O;'5M;E]L:7-T(#T@.3E5,3 T*"0D-"@.D)+RH-
M"@.D)*BH@.8VAE8VL@.=&\@.<V5E(&EF('1H870@.8V]L=6UN(&-A;B!B92!D<F]P
M<&5D(&)A<V5D(&]N(&-U<G)E;G0@.87)T:6-L92=S(&9I;'1E<B!C;&%U<V4-
M"@.D)*BH@.86YD(&EF('1H92!A<G1I8VQE(&ES(&EN=F]L=F5D(&EN(&%N>2!J
M;VEN7V9I;'1E<E]C;&%U<V5S("T@.=&\@.;6%K92!S=7)E('1H92!D<F]P(&]F
M#0H)"2HJ(&]N92!C;VQU;6X@.9&]E<R!N;W0@.8W)I<'!L92!A;GD@.<W5C:"!J
M;VEN<PT*"0DJ+R -"@.D):68@.*"A 9FEL=&5R7V-L875S92!I<R!N;W0@.3E5,
M3"!A;F0@.0&9I;'1E<E]C;&%U<V4@./#XG)R I(&]R( T*"0D)97AI<W1S("AS
M96QE8W0@.*B!F<F]M('-Y<VUE<F=E<W5B<V5T9FEL=&5R<R!W:&5R92!P=6)I
M9#U <'5B:60@.86YD( T*"0D)*&%R=&ED/4!A<G1I9"!O<B!J;VEN7V%R=&EC
M;&5N86UE/4!A<G1I8VQE*2DI(&%N9"!,3U=%4BA ;W!E<F%T:6]N(&-O;&QA
M=&4@.4U%,7TQA=&EN,5]'96YE<F%L7T-0,5]#4U]!4RD@./2 G9')O<"<-"@.D)
M8F5G:6X-"@.D)"65X96,@.0')E=&-O9&4@./2!S<%]-4V=E=&-O;'5M;FQI<W0@.
M0'!U8FED+"! 8V]L=6UN7VQI<W0@.3U544%54+"! ;V)J:60-"@.D)"6EF($!
M15)23U(\/C @.;W(@.0')E=&-O9&4\/C -"@.D)"0E'3U1/($9!24Q54D4-"@.D)
M"7-E;&5C="! ;V)J96-T7W9I97<])U1%35!?5DE%5U\G("L@.0'-O=7)C95]O
M8FIE8W0@.("TM0'-O=7)C95]O8FIE8W0@.:7,@.;F]T('%U;W1E9 T*(" @.(" @.
M(" @.(" @.<V5L96-T($!Q=6%L7V]B:F5C=%]V:65W/7%U;W1E;F%M92A ;V)J
M96-T7W9I97<I#0H-"B @.(" @.(" @.(" @.(&5X96,@.0')E=&-O9&4@./2!S<%]-
M4V=E=%]Q=6%L:69I961?;F%M92! ;V)J:60L($!Q=6%L7W-O=7)C95]O8FIE
M8W0@.3U544%54#0H@.(" @.(" @.(" @.("!I9B! 0$524D]2/#XP(&]R($!R971C
M;V1E/#XP#0H@.(" @.(" @.(" @.(" )9V]T;R!&04E,55)%#0H@.(" @.(" @.(" @.
M("!S96QE8W0@.0'%U;W1E9%]S;W5R8V5?;V)J96-T/5%53U1%3D%-12A <V]U
M<F-E7V]B:F5C="D-"@.T*+2T@.2T$@.+2!"96=I;@.T*+2T@.061D(&%L:6%S(&9O
M<B!S;W5R8V4@.;V)J96-T+B -"BTM($ET(&ES(&YE961E9"P@.8F5C875S92!C
M;VQU;6YS("AI;B! 8V]L=6UN7VQI<W0I(&EN(%-%3$5#5"!C;&%U<V4@.87)E
M(&)E:6YG(')E9F5R96YC960@.#0HM+2!U<VEN9R!S;W5R8V4@.; V)J96-T(&YA
M;64L('=H:6-H(&ES(&YO="!E<75A;"!T;R B<75A;&EF:65D('-O=7)C92!O
M8FIE8W0@.;F%M92(@.#0HM+2!U<V5D(&EN($923TT@.8VQA=7-E(&]F('1H92!S
M=&%T96UE;G0N#0HM+0D)"65X96,@.*"=C<F5A=&4@.=FEE=R G("L@.0'%U86Q?
M;V)J96-T7W9I97<@.*R G(&%S('-E;&5C=" G("L@.0&-O;'5M;E]L:7-T("L@.
M)R!F<F]M("<@.*R! <75A;%]S;W5R8V5?;V)J96-T*2 @.(" @.(" @.(" @.( T*
M"0D)97AE8R H)V-R96%T92!V:65W("<@.*R! <75A;%]O8FIE8W1?=FEE=R K
M("<@.87,@.<V5L96-T("<@.*R! 8V]L=6UN7VQI<W0@.*R G(&9R;VT@.)R K($!Q
M=6%L7W-O=7)C95]O8FIE8W0@.*R G("<@.*R! <V]U<F-E7V]B:F5C="D-"BTM
M($M!("T@.16YD#0H)"0EI9B! 0$524D]2/#XP#0H)"0D)1T]43R!&04E,55)%
M#0H)"0EI9B! 9FEL=&5R7V-L875S92!I<R!N;W0@.3E5,3"!A;F0@.0&9I;'1E
M<E]C;&%U<V4@./#XG)R -"@.D)"6)E9VEN#0H)"0D)97AE8R H)V1E8VQA<F4@.
M0'1E<W0@.:6YT('-E;&5C="! =&5S=#TQ(&9R;VT@.)R K($!Q=6%L7V]B:F5C
M=%]V:65W("L@.)R G("L@.0'%U;W1E9%]S;W5R8V5?;V)J96-T("L@.)R!W:&5R
M92 G("L@.0&9I;'1E<E]C;&%U<V4I#0H)"0D):68@.0$!%4E)/4CP^, T*"0D)
M"0EB96=I;@.T*"0D)"0D)97AE8R@.G9')O<"!V:65W("<@.*R ! <75A;%]O8FIE
M8W1?=FEE=RD-"@.D)"0D)"7)A:7-E<G)O<B@.R,3(U-BP@.,38L("TQ+"! 9FEL
M=&5R7V-L875S92P@.0'-O=7)C95]O8FIE8W0I#0H)"0D)"0E'3U1/($9!24Q5
M4D4-"@.D)"0D)96YD#0H)"0EE;F0)"0D-"@.D)96YD#0H)"0T*"0DO*@.T*"0DJ
M*B!#:&5C:R!T;R!M86ME('-U<F4@.9')O<'!I;F<@.82!C;VQU;6X@.=VEL;"!N
M;W0@.8G)E86MI;F<@.86YY(&]T:&5R(&%R=&EC;&5S('1H870@.=7-I;F<@.8W5R
M<F5N="!A<G1I8VQE(&%S(&IO:6Y?87)T:6-L90T*"0DJ+PT*"0EI9B!E>&ES
M=',@.*'-E;&5C=" J(&9R;VT@.<WES;65R9V5S=6)S971F:6QT97)S('=H97)E
M('!U8FED/4!P=6)I9"!A;F0@.#0H)"0DH87)T:60]0&%R=&ED(&]R(&IO:6Y?
M87)T:6-L96YA;64]0&%R=&EC;&4I*2!A;F0@.3$]715(H0&]P97)A=&EO;B!C
M;VQL871E(%-13%],871I;C%?1V5N97)A;%]#4#%?0U-?05,I(#T@.)V1R;W G
M#0H)"6)E9VEN#0H)"0ED96-L87)E($!J;VEN7V%R=&EC;&5N86UE('-Y<VYA
M;64-"@.D)"61E8VQA<F4@.<&5R7V%R=&EC;&4@.0U524T]2($Q/0T%,($9!4U1?
M1D]25T%21"!&3U(@.#0H)"0D)<V5L96-T(&%R=&ED+"!J;VEN7V9I;'1E<F-L
M875S92P@.:F]I;E]A<G1I8VQE;F%M92!F<F]M('-Y<VUE<F=E<W5B<V5T9FEL
M=&5R<R -"@.D)"0D)=VAE<F4@.<'5B:60]0'!U8FED(&%N9" H:F]I;E]A<G1I
M8VQE;F%M93U 87)T:6-L92!O<B!A<G1I9#U 87)T:60I#0H)"0EF;W(@.4D5!
M1"!/3DQ9#0H)"0EO<&5N('!E<E]A<G1I8VQE#0H)"0EF971C:"!P97)?87)T
M:6-L92!I;G1O($!T;7!?87)T:60L($!F:6QT97)?8VQA=7-E+"! :F]I;E]A
M<G1I8VQE;F%M90T*"0D)=VAI;&4@.*$! 9F5T8VA?<W1A='5S/#XM,2D-"@.D)
M"6)E9VEN#0HM+2!+02 M($)E9VEN#0HM+2!'970@.86QS;R B=&5M<"!O8FIE
M8W0B($E$+"!W:&EC:"!W:6QL(&)E('5S960@.=&\@.9V5T('5S9 7(M<75A;&EF
M:65D(")T96UP(&]B:F5C="(@.;F%M90T*+2T@."0D)"6EF($!A<G1I9#P^0'1M
M<%]A<G1I9 T*+2T@."0D)"0ES96QE8W0@.0'1M<%]O8FIE8W0];V)J96-T7VYA
M;64H;V)J:60I(&9R;VT@.<WES;65R9V5A<G1I8VQE<R!W:&5R9 2!P=6)I9#U
M<'5B:60@.86YD(&%R=&ED/4!T;7!?87)T:60-"BTM( D)"0EE;'-E#0HM+2 )
M"0D)"7-E;&5C="! =&UP7V]B:F5C=#UO8FIE8W1?;F%M92AO8FII9"D@.9G)O
M;2!S>7-M97)G96%R=&EC;&5S('=H97)E('!U8FED/4!P=6)I9"!A;F0@.;F%M
M93U :F]I;E]A<G1I8VQE;F%M90T*+2T@."0D)"7-E;&5C="! <75A;%]T;7!?
M;V)J96-T/5%53U1%3D%-12A =&UP7V]B:F5C="D-"@.D)"0ED96-L87)E($!T
M;7!?;V)J96-T7V]B:FED(&EN= T*"0D)"6EF($!A<G1I9#P^0'1M<%]A<G1I
M9 T*"0D)"0ES96QE8W0@.0'1M<%]O8FIE8W0@./2!154]414Y!344H($]"2D5#
M5%].04U%*"!O8FII9" I("DL($!T;7!?;V)J96-T7V]B:FED(#T@.;V)J:60@.
M9G)O;2!S>7-M97)G96%R=&EC;&5S('=H97)E('!U8FED/4!P=6)I9"!A;F0@.
M87)T:60]0'1M<%]A<G1I9 T*"0D)"65L<V4-"@.D)"0D)<V5L96-T($!T;7!?
M;V)J96-T(#T@.455/5$5.04U%*"!/0DI%0U1?3D%-12@.@.;V)J:60@.*2 I+"!
M=&UP7V]B:F5C=%]O8FII9" ](&]B:FED(&9R;VT@.<WES;65R9V5A<G1I8VQE
M<R!W:&5R92!P=6)I9#U <'5B:60@.86YD(&YA;64]0&IO:6Y?87)T:6-L96YA
M;64-"BTM($M!("T@.16YD#0H)"0D):68@.0'1M<%]O8FIE8W0@.:7,@.;F]T($Y5
M3&P@.86YD($!T;7!?;V)J96-T/#XG)PT*"0D)"0EB96=I;@.T*+2T@.2T$@.+2!"
M96=I;@.T*+2T@.1V5T('5S97(M<75A;&EF:65D(")T96UP(&]B:F5C="(@.;F%M
M92X-"BTM(%5S92!U<V5R+7%U86QI9FEE9" B=&5M<"!O8FIE8W0B(&YA;64@.
M:6X@.1E)/32!C;&%U<V4N#0HM+2!5<V4@.86QI87,@.:6X@.1E)/32!C;&%U<V4@.
M9F]R('1H:7,@.=7-E<BUQ=6%L:69I960@.(G1E;7 @.;V)J96-T(BX-"BTM( D)
M"0D)"65X96,@.*"=D96-L87)E($!T97-T(&EN="!S96QE8W0@.0'1E<W0],2!F
M<F]M("<@.*R! <75A;%]O8FIE8W1?=FEE=R K("<@.)R K($!Q=6]T961?<V]U
M<F-E7V]B:F5C=" K("<L("<@.*R! <75A;%]T;7!?;V)J96-T("L@.)R!W:&5R
M92 G("L@.0&9I;'1E<E]C;&%U<V4I"0D)"0D-"@.D)"0D)"65X96,@.9&)O+G-P
M7TU39V5T7W%U86QI9FEE9%]N86UE($!T;7!?;V)J96-T7V]B:FED+"! <75A
M;%]T;7!?;V)J96-T($]55%!55 T*"0D)"0D)97AE8R H)V1E8VQA<F4@.0'1E
M<W0@.:6YT('-E;&5C="! =&5S=#TQ(&9R;VT@.)R K($!Q=6%L7V]B:F5C=%]V
M:65W("L@.)R G("L@.0'%U;W1E9%]S;W5R8V5?;V)J96-T("L@.)RP@.)R K($!Q
M=6%L7W1M<%]O8FIE8W0@.*R G("<@.*R! =&UP7V]B:F5C=" K("<@.=VAE<F4@.
M)R K($!F:6QT97)?8VQA=7-E*0T*+2T@.2T$@.+2!%;F0-"@.D)"0D)"6EF($!
M15)23U(\/C -"@.D)"0D)"6)E9VEN#0H)"0D)"0D)8VQO<V4@.<&5R7V%R=& EC
M;&4-"@.D)"0D)"0ED96%L;&]C871E('!E<E]A<G1I8VQE#0H)"0D)"0D)<F%I
M<V5R<F]R*#(Q,C4V+" Q-BP@.+3$L($!F:6QT97)?8VQA=7-E+"! <V]U<F-E
M7V]B:F5C="D-"@.D)"0D)"0E'3U1/($9!24Q54D4-"@.D)"0D)"65N9 T*"0D)
M"0EE;F0-"@.D)"0EF971C:"!P97)?87)T:6-L92!I;G1O($!T;7!?87)T:60L
M($!F:6QT97)?8VQA=7-E+"! :F]I;E]A<G1I8VQE;F%M90D-"@.D)"65N9 T*
M"0D)8VQO<V4@.<&5R7V%R=&EC;&4-"@.D)"61E86QL;V-A=&4@.<&5R7V%R=&EC
M;&4)"0T*"0EE;F0)"0D-"@.E%3D0@.(" -"@.T*"2\J#0H@.(" @.*BH@.:68@.<VYA
M<'-H;W0@.:7,@.<F5A9'DL(&-H86YG92!I="!T;R!O8G-O;&5T92!T;R!F;W)C
M92!A;F]T:&5R('-N87!S:&]T(')U;BX)#0H@.(" @.*BH@.3F]T92!T:&ES(&ES
M('1H92!T:&ER9"!V86QU92!O9B!S;F%P<VAO=%]R96%D>2X@.,"!F;W(@.;F]T
M(')E861Y+" Q(&9O<B!/2RP@.,B!F;W(@.;V)S;VQE=&4-"B @.(" J+R @.( T*
M(" @.($E&($5825-44R H4T5,14-4("H@.1E)/32!S>7-M97)G97!U8FQI8V%T
M:6]N<R!72$5212!P=6)I9#U <'5B:60@.86YD('-N87!S:&]T7W)E861Y/C I
M( T*(" @.( D)86YD($Q/5T52*$!S8VAE;6%?<F5P;&EC871I;VX@.8V]L;&%T
M92!344Q?3&%T:6XQ7T=E;F5R86Q?0U Q7T-37T%3*3TG9F%L<V4G#0H@.(" @.
M(" @.($)%1TE.#0H)(" @.(" @.("!U<&1A=&4@.<WES;65R9V5A<G1I8VQE<R!S
M970@.<W1A='5S/3$L(&-O;F9L:6-T7W1A8FQE/4Y53$P@.=VAE<F4@.<'5B:60]
M0'!U8FED(&%N9"!A<G1I9#U 87)T:60@.86YD('-T871U<SP^-2!A;F0@.<W1A
M='5S(#P^-@.T*"2 @.(" @.(" @.:68@.0$!%4E)/4CP^, T*"2 @.(" @.(" @."6=O
M=&\@.1D%)3%5210T*"0DO*@.T*"0DJ*B!&;W)C92!A(')E+6=E; F5R871I;VX@.
M;V8@.8V]N9FQI8W0@.=&%B;&4@.86YD(&ET<R!I;G-?<')O8PT*"0DJ+PT*"2 @.
M(" @.(" @.:68@.;V)J96-T7VED*$!I;G-?8V]N9FQI8W1?<')O8RD@.:7,@.;F]T
M($Y53$P-"@.D@.(" @.(" @.( EB96=I;@.T*"2 @.(" @.(" @."0ES970@.0'%U;W1E
M9%]S;W5R8V5?;V)J96-T/2!Q=6]T96YA;64H0&EN<U]C;VYF;&EC=%]P<F]C
M*0T*"2 @.(" @.(" @."0EE>&5C("@.G9')O<"!P<F]C("<@.*R! <75O=&5D7W-O
M=7)C95]O8FIE8W0I#0H)(" @.(" @.(" )"6EF($! 15)23U(\/C -"@.D@.(" @.
M(" @.( D)"6=O=&\@.1D%)3%5210T*"2 @.(" @.(" @."65N9 T*"2 @.(" @.(" @.
M:68@.;V)J96-T7VED*$!C;VYF;&EC=%]T86)L92D@.:7,@.;F]T($Y53$P-"@.D@.
M(" @.(" @.( EB96=I;@.T*"2 @.(" @.(" @."0ES970@.0'%U;W1E9%]S;W5R8V5?
M;V)J96-T/2!Q=6]T96YA;64H0&-O;F9L:6-T7W1A8FQE*0T*"2 @.(" @.(" @.
M"0EE>&5C("@.G9')O<"!T86)L92 G("L@.0'%U;W1E9%]S;W5R8V5?;V)J96-T
M*0T*"2 @.(" @.(" @."0EI9B! 0$524D]2/#XP#0H)(" @.(" @.(" )"0EG;W1O
M($9!24Q54D4-"@.D@.(" @.(" @.( EE;F0-"@.D@.(" @.(" @.("\J#0H)"0DJ*B!M
M86ME('-U<F4@.=V4@.:VYO=R!W92!R96%L;'D@.=V%N="!T;R!D;R!T:&ES+ @.T*
M"0D)*B\-"@.D)"6EF($!F;W)C95]I;G9A;&ED871E7W-N87!S:&]T(#T@., T*
M"0D)"6)E9VEN#0H)"0D)"7)A:7-E<G)O<B@.R,#8P-RP@.,38L("TQ*0T*"0D)
M"0EG;W1O($9!24Q54D4-"@.D)"0EE;F0-"@.D)"75P9&%T92!S>7-M97)G97!U
M8FQI8V%T:6]N<R!S970@.<VYA<'-H;W1?<F5A9'D],B!W:&5R92!P=6)I9#U
M<'5B:60-"@.D)"6EF($! 15)23U(\/C -"@.D)"0EG;W1O($9!24Q54D4-"@.T*
M"0D):68@.0&9O<F-E7W)E:6YI=%]S=6)S8W)I<'1I;VX@./2 P(&%N9"! <W1A
M='5S7W9A;'5E/#XU("TM-2!I<R!T:&4@.=F%L=64@.9F]R(&YE=U]I;F%C=&EV
M90T*"0D)"6)E9VEN#0H)"0D)"7)A:7-E<G)O<B@.R,#8P."P@.,38L("TQ*0T*
M"0D)"0EG;W1O($9!24Q54D4-"@.D)"0EE;F0-"@.T*"0D)+2UD;R!A(&=L;V)A
M;"!R90T*"0D)#0H)"0EI9B! 9F]R8V5?<F5I;FET7W-U8G-C<FEP=&EO;B ]
M(#$-"@.D)"0EB96=I;@.T*"0D)"0DM+6=L;V)A;"!R96EN:71I86QI>F %T:6]N
M('=I;&P@.8G5M<"!U<"!B86-K=V%R9"UC;VUP+6QE=F5L('1O(%-0,BX-"@.D)
M"0EE>&5C($!R971C;V1E(#T@.<W!?35-R96EN:71M97)G97!U8FQI8V%T:6]N
M($!P=6)L:6-A=&EO;@.T*"0D)"6EF($!R971C;V1E/#XP(&]R($! 15)23U(\
M/C -"@.D)"0D)9V]T;R!&04E,55)%#0H)"0D)96YD#0H)"0DO*@.T*"0D)*BH@.
M179E;B!F;W(@.=F5R=&EC86P@.<&%R=&ET:6]N:6YG(&]N(&YE=R!A<G1I8VQE
M("T@.=V4@.9&\@.;F]T(&YE960@.=&\@.8G5M<'5P(&)A8VMW87)D+6-O;7 M;&5V
M96P-"@.D)"2HJ#0H)"0EE;'-E#0H)"0D)8F5G:6X)+2UB=6UP('5P('1H92!B
M86-K=V%R9"UC;VUP+6QE=F5L('-O('1H870@.;VYL>2 X,"!S=6)S8W)I8F5R
M<R!C86X@.=7-E(&ET+@.T*"0D)"65X96,@.0')E=&-O9&4@./2!S<%]-4T)U;7!U
M<$-O;7!,979E;"! <'5B:60L(#0P#0H)"0D):68@.0$!%4E)/4CP^,"!O<B!
M<F5T8V]D93P^, T*"0D)"0E'3U1/($9!24Q54D4-"@.D)"0EE;F0-"@.D)"2HO
M#0H@.(" @.(" @.($5.1 T*#0H@.(" @.0T]-34E4(%1204Y304-424].#0H@.(" @.
M:68@.97AI<W1S("AS96QE8W0@.*B!F<F]M('-Y<V]B:F5C=',@.=VAE<F4@.:60@.
M/2!O8FIE8W1?:60H0'%U86Q?;V)J96-T7W9I97<I*0T*(" @.(" @.("!B96=I
M;@.T*(" @.(" @.(" @.(" @.97AE8R H)V1R;W @.=FEE=R G("L@.0'%U86Q?;V)J
M96-T7W9I97<I#0H@.(" @.(" @.(&5N9 T*(" @.(')E='5R;B H,"D-"D9!24Q5
M4D4Z#0H-"B @.("!I9B! 0%1204Y#3U5.5" ^," -"B @.(" )8F5G:6X-"B @.
M(" @.(" @."5)/3$Q"04-+(%1204Y304-424].(&%R=&EC;&5C;VQU;6X-"B @.
M(" @.(" @."4-/34U)5"!44D%.#0H@.(" @.(" @.(&5N9 T*#0H@.(" @.:68@.97AI
M<W1S("AS96QE8W0@.*B!F<F]M('-Y<V]B:F5C=',@.=VAE<F4@.:60@./2!O8FIE
M8W1?:60H0'%U86Q?;V)J96-T7W9I97<I*0T*(" @.(" @.("!B96=I;@.T*(" @.
M(" @.(" @.(" @.97AE8R H)V1R;W @.=FEE=R G("L@.0'%U86Q?;V)J96-T7W9I
M97<I#0H@.(" @.(" @.(&5N9 T*#0H@.(" @.<F5T=7)N("@.Q*0T*#0I'3PT*#0HM
M+2!314Q%0U0@.*B!&4D]-(%MM87-T97)=+EMD8F]=+EMS>7-O8FIE8W1S72!7
M2$5212!N86UE(#T@.)W-P7VUE<F=E87)T:6-L96-O;'5M;B<-"@.T*55!$051%
M"5MM87-T97)=+EMD8F]=+EMS>7-O8FIE8W1S70T*4T54( E;<W1A='5S73TM
M,3 W,S<T,3@.R,RP-"@.E;8F%S95]S8VAE;6%?=F5R73TQ-@.T*5TA%4D4@."6YA
M;64@./2 G<W!?;65R9V5A<G1I8VQE8V]L=6UN)PT*#0HM+2!E>&5C(&1B;RYS
M<%]-4U]M87)K<WES=&5M;V)J96-T('-P7VUE<F=E87)T:6-L96-O;'5M;@.T*
M#0IS<%]C;VYF:6=U<F4@.0&-O;F9I9VYA;64@./2 G86QL;W<@.=7!D871E<R<L
M($!C;VYF:6=V86QU92 ]("<P)PT*1T\-"E)%0T].1DE'55)%(%=)5$@.@.3U9%
-4E))1$4-"D=/#0H-"@.``
`
end
And one more remark..
In procedure sp_MSsetartprocs, where "article replication procedures" are
created, procedure creation sequence is such, that everytime you get a
(dependancy) warning that referenced procedure is missing. That is annoying
and is happening only because this "missing procedure" is created straight
after referencing procedure is created. If creation sequence would be
changed - referenced procedure would be created before it is referenced in
other procedure - no warning would be issused and dependancies would be
stored correctly.
Regards,
Kestutis Adomavicius
Consultant
UAB "Baltic Software Solutions"
"Kestutis Adomavicius" <kicker.lt@.nospaamm_tut.by> wrote in message
news:On5ape$6EHA.1296@.TK2MSFTNGP10.phx.gbl...
> I have encountered a couple of new problems in merge replication area.
> --
> First problem is occuring on SQL Server 2000 version 8.00.818 (and most
> probably on all higher versions which are currently available).
> Problem is related to a new security enhancements which were introduced in
> this version. When merge publication article is added, a number of
(system)
> stored procedures are created to perform some actions on that article. One
> of those procedures has a an extention "_pal" at the end of the name. The
> problem is that this particular procedure is not marked as a system
object.
> All other generated procedures are marked as a system object. This is
> causing a failure in replication - sometimes data is simply not
replicated,
> and no errors are shown in replication monitor

> This problem is caused by a copy-paste (obviously) bug in stored procedure
> sp_MSsetartprocs. One of the created procedures is marked as a system
object
> for two times, and procedure with "_pal" at the end of the name is not
> merked (see attached fix script).
> --
> Second problem is a little bit more "widespread". It is occuring on SQL
> Server 2000 version 8.00.760 (SP3a) and also on 8.00.818 (and most
probably
> on all higher versions which are currently available).
> Problem is related to filtered merge publications, with objects not owned
by
> dbo. When column is being dropped (using sp_repldropcolumn) from merge
> publication article which is participating in filtering, an error is
> occuring (objects can not be found). It is happening because of the most
> common reason in similar cases - incorrect usage of user-qualified names.
In
> this case problem is in stored procedure sp_mergearticlecolumn. For more
> details, see fixes in attached script.
> --
> As far as I know, or I should say, "as Hillary said

> fix this problematic with "non dbo owned objects in merge replication" for
> SP4, so hopefully these simple fixes could also be included

> --
> Regards,
> Kestutis Adomavicius
> Consultant
> UAB "Baltic Software Solutions"
>
>
|||Thanks Kestutis. I have drawn attention to this post to a different contact
of mine at Microsoft. The last support engineer I forwarded your last post
to, did not get back to me

Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"Kestutis Adomavicius" <kicker.lt@.nospaamm_tut.by> wrote in message
news:exoezo$6EHA.2676@.TK2MSFTNGP12.phx.gbl...
> And one more remark..
> In procedure sp_MSsetartprocs, where "article replication procedures" are
> created, procedure creation sequence is such, that everytime you get a
> (dependancy) warning that referenced procedure is missing. That is
annoying[vbcol=seagreen]
> and is happening only because this "missing procedure" is created straight
> after referencing procedure is created. If creation sequence would be
> changed - referenced procedure would be created before it is referenced in
> other procedure - no warning would be issused and dependancies would be
> stored correctly.
> --
> Regards,
> Kestutis Adomavicius
> Consultant
> UAB "Baltic Software Solutions"
>
> "Kestutis Adomavicius" <kicker.lt@.nospaamm_tut.by> wrote in message
> news:On5ape$6EHA.1296@.TK2MSFTNGP10.phx.gbl...
in[vbcol=seagreen]
> (system)
One[vbcol=seagreen]
The[vbcol=seagreen]
> object.
> replicated,
procedure[vbcol=seagreen]
> object
> probably
owned[vbcol=seagreen]
> by
names.[vbcol=seagreen]
> In
to[vbcol=seagreen]
for
>
|||Kestutis - my contacts at Microsoft have confirmed that the problem areas
you have found in merge replication regarding object ownership are fixed in
the upcoming SP 4.
Thanks for pointing them out!
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"Kestutis Adomavicius" <kicker.lt@.nospaamm_tut.by> wrote in message
news:On5ape$6EHA.1296@.TK2MSFTNGP10.phx.gbl...
> I have encountered a couple of new problems in merge replication area.
> --
> First problem is occuring on SQL Server 2000 version 8.00.818 (and most
> probably on all higher versions which are currently available).
> Problem is related to a new security enhancements which were introduced in
> this version. When merge publication article is added, a number of
(system)
> stored procedures are created to perform some actions on that article. One
> of those procedures has a an extention "_pal" at the end of the name. The
> problem is that this particular procedure is not marked as a system
object.
> All other generated procedures are marked as a system object. This is
> causing a failure in replication - sometimes data is simply not
replicated,
> and no errors are shown in replication monitor

> This problem is caused by a copy-paste (obviously) bug in stored procedure
> sp_MSsetartprocs. One of the created procedures is marked as a system
object
> for two times, and procedure with "_pal" at the end of the name is not
> merked (see attached fix script).
> --
> Second problem is a little bit more "widespread". It is occuring on SQL
> Server 2000 version 8.00.760 (SP3a) and also on 8.00.818 (and most
probably
> on all higher versions which are currently available).
> Problem is related to filtered merge publications, with objects not owned
by
> dbo. When column is being dropped (using sp_repldropcolumn) from merge
> publication article which is participating in filtering, an error is
> occuring (objects can not be found). It is happening because of the most
> common reason in similar cases - incorrect usage of user-qualified names.
In
> this case problem is in stored procedure sp_mergearticlecolumn. For more
> details, see fixes in attached script.
> --
> As far as I know, or I should say, "as Hillary said

> fix this problematic with "non dbo owned objects in merge replication" for
> SP4, so hopefully these simple fixes could also be included

> --
> Regards,
> Kestutis Adomavicius
> Consultant
> UAB "Baltic Software Solutions"
>
>